{"version":3,"sources":["webpack:///main.bundle.js","webpack:///webpack/bootstrap 10b50d75ea37c3ad8838","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./src/constants.ts","webpack:///./node_modules/rxjs/Observable.js","webpack:///./src/shared/util.ts","webpack:///./node_modules/rxjs/util/root.js","webpack:///./node_modules/rxjs/Subscriber.js","webpack:///./src/shared/log.ts","webpack:///./node_modules/rxjs/Subscription.js","webpack:///./src/core/facebook-api.ts","webpack:///./src/core/snap-auth.ts","webpack:///./src/shared/ui/index.ts","webpack:///./node_modules/rxjs/util/isFunction.js","webpack:///./node_modules/rxjs/symbol/rxSubscriber.js","webpack:///./src/shared/script.ts","webpack:///./src/shared/ui/components/component.ts","webpack:///./node_modules/rxjs/util/isObject.js","webpack:///./node_modules/rxjs/util/errorObject.js","webpack:///./node_modules/rxjs/Observer.js","webpack:///./node_modules/rxjs/symbol/observable.js","webpack:///./node_modules/rxjs/OuterSubscriber.js","webpack:///./node_modules/rxjs/util/subscribeToResult.js","webpack:///./node_modules/rxjs/util/ObjectUnsubscribedError.js","webpack:///./src/core/google-api.ts","webpack:///./src/main.ts","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./src/components/facebook.ts","webpack:///./node_modules/query-string/index.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./src/shared/ui/components/components.ts","webpack:///./src/shared/ui/components/sign-in-control.ts","webpack:///./src/shared/ui/components/sign-in-form.ts","webpack:///./src/shared/ui/master-control.ts","webpack:///./src/shared/ui/sign-up-control.ts","webpack:///./src/components/facebook.component.ts","webpack:///./node_modules/rxjs/add/observable/fromEventPattern.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/rxjs/util/toSubscriber.js","webpack:///./node_modules/rxjs/util/isArray.js","webpack:///./node_modules/rxjs/util/tryCatch.js","webpack:///./node_modules/rxjs/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/observable/fromEventPattern.js","webpack:///./node_modules/rxjs/observable/FromEventPatternObservable.js","webpack:///./node_modules/rxjs/add/operator/filter.js","webpack:///./node_modules/rxjs/operator/filter.js","webpack:///./node_modules/rxjs/add/operator/switchMap.js","webpack:///./node_modules/rxjs/operator/switchMap.js","webpack:///./node_modules/rxjs/util/isArrayLike.js","webpack:///./node_modules/rxjs/util/isPromise.js","webpack:///./node_modules/rxjs/symbol/iterator.js","webpack:///./node_modules/rxjs/InnerSubscriber.js","webpack:///./node_modules/rxjs/add/operator/switchMapTo.js","webpack:///./node_modules/rxjs/operator/switchMapTo.js","webpack:///./node_modules/rxjs/BehaviorSubject.js","webpack:///./node_modules/rxjs/Subject.js","webpack:///./node_modules/rxjs/SubjectSubscription.js","webpack:///./src/components/google.ts","webpack:///./src/components/google.component.ts","webpack:///./src/components/snap.ts","webpack:///./src/components/snap.component.ts","webpack:///./src/_debug.ts"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","__extends","b","__","this","constructor","extendStatics","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","throw","result","done","then","apply","__generator","body","verb","v","op","f","TypeError","_","y","t","label","ops","pop","trys","length","push","g","sent","return","Symbol","iterator","__assign","setPrototypeOf","__proto__","Array","assign","arguments","AuthType","ErrorCode","headerNames","queryStrings","googleConfig","facebookConfig","urls","selectors","AUTH_TYPE","PENDING_AUTH","REDIRECT_URL","RETURN_URL","REFERRER","IGNORE_WORKFLOW","configElementDataSet","document","querySelector","dataset","CLIENT_ID","googleOAuthClientId","SCOPE","APP_ID","facebookAppId","API_VERSION","snap","window","ERROR_LOGGING","LOG_ERROR_URL","SNAP_SIGNIN","RETAILER_API_URL","SNAP_SIGNUP","MASTER_CONTROL","FORM","FORM_HELPTEXT","FORM_SUBMIT","CONTROL","CONTROL_INPUT","CONTROL_HELPTEXT","root_1","toSubscriber_1","observable_1","Observable","subscribe","_isScalar","_subscribe","lift","operator","observable","source","observerOrNext","error","complete","sink","toSubscriber","add","_trySubscribe","syncErrorThrowable","syncErrorThrown","syncErrorValue","err","forEach","PromiseCtor","_this","root","Rx","config","Error","subscription","unsubscribe","subscriber","deferredValue","valueFn","__WEBPACK_IMPORTED_MODULE_0_tslib__","_a","exceptionToMessage","ex","JSON","stringify","errorJsonReplacer","key","toString","noop","global","__window","__self","self","WorkerGlobalScope","__global","_root","isFunction_1","Subscription_1","Observer_1","rxSubscriber_1","Subscriber","_super","destinationOrNext","isStopped","destination","empty","SafeSubscriber","rxSubscriber","_next","_error","_complete","closed","_unsubscribeAndRecycle","_parent","_parents","Subscription","_parentSubscriber","context","isFunction","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","_unsubscribe","log","__WEBPACK_IMPORTED_MODULE_0__constants__","info","args","_i","console","warn","sendError","message","errorData","FormData","append","location","href","fetch","mode","method","flattenUnsubscriptionErrors","errors","reduce","errs","concat","UnsubscriptionError_1","UnsubscriptionError","isArray_1","isObject_1","tryCatch_1","errorObject_1","_subscriptions","hasErrors","index","len","remove","trial","tryCatch","errorObject","isArray","sub","isObject","teardown","EMPTY","_addParent","tmp","subscriptions","subscriptionIndex","indexOf","splice","facebookApi","__WEBPACK_IMPORTED_MODULE_1__shared_script__","__WEBPACK_IMPORTED_MODULE_2__shared_util__","libValue","fbAsyncInit","FB","src","id","async","defer","fb","graph","_b","api","loginStatus","force","getLoginStatus","isAuthException","SnapAuthException","setPendingAuth","pendingAuth","signIn","authType","data","headers","returnUrl","response","_c","_d","_e","__WEBPACK_IMPORTED_MODULE_1__constants__","currentParams","sendRequest","ok","status","json","mapDetails","details","code","unknownError","text","signUp","url","ignoreWorkflow","attachReferrer","referrer","getReferrer","param","queryString","trim","undefined","Map","map","ex_1","credentials","Headers","Content-Type","__WEBPACK_IMPORTED_MODULE_2__shared_log__","parse","search","controls","Unknown","ui","__WEBPACK_IMPORTED_MODULE_1__components__","__WEBPACK_IMPORTED_MODULE_2__master_control__","__WEBPACK_IMPORTED_MODULE_3__sign_up_control__","masterControl","forms","el","x","for","$$rxSubscriber","isEventProp","test","extractEventName","slice","toLowerCase","setBooleanProp","target","setAttribute","setProp","addEventListener","setProps","props","entries","insertScript","script","createElement","sibling","getElementsByTagName","parentNode","insertBefore","Component","$root","$helptext","textContent","set","getSymbolObservable","$$observable","Subscriber_1","OuterSubscriber","notifyNext","outerValue","innerValue","outerIndex","innerIndex","innerSub","notifyError","notifyComplete","subscribeToResult","outerSubscriber","InnerSubscriber_1","InnerSubscriber","Observable_1","isArrayLike_1","isArrayLike","isPromise_1","isPromise","setTimeout","iterator_1","item","obs","msg","ObjectUnsubscribedError","stack","googleApi","onload","gapi","load","libraries","timeout","callback","onerror","ontimeout","initAuth","params","auth2","init","googleAuth","__WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__","__WEBPACK_IMPORTED_MODULE_1__components_facebook__","__WEBPACK_IMPORTED_MODULE_2__components_google__","__WEBPACK_IMPORTED_MODULE_3__components_snap__","__WEBPACK_IMPORTED_MODULE_4__shared_util__","catch","normalizeName","String","normalizeValue","iteratorFor","items","shift","support","iterable","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","fromCharCode","join","bufferClone","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","formData","_bodyFormData","searchParams","URLSearchParams","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","type","decode","normalizeMethod","upcased","toUpperCase","methods","Request","input","options","form","split","bytes","replace","decodeURIComponent","parseHeaders","rawHeaders","line","parts","Response","bodyInit","statusText","viewClasses","obj","DataView","isView","oldValue","has","keys","values","clone","redirectStatuses","redirect","RangeError","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","open","withCredentials","responseType","setRequestHeader","send","polyfill","signInControl","$signUp","signUpControl","__WEBPACK_IMPORTED_MODULE_5__shared_ui__","Facebook","$","__WEBPACK_IMPORTED_MODULE_2__core_facebook_api__","appId","version","__WEBPACK_IMPORTED_MODULE_7__facebook_component__","__WEBPACK_IMPORTED_MODULE_3__core_snap_auth__","__WEBPACK_IMPORTED_MODULE_4__shared_log__","__WEBPACK_IMPORTED_MODULE_6__shared_util__","encoderForArrayFormat","opts","arrayFormat","encode","parserForArrayFormat","accumulator","exec","strict","strictUriEncode","encodeURIComponent","keysSorter","sort","a","Number","objectAssign","decodeComponent","extract","str","formatter","ret","val","Boolean","val2","filter","charCodeAt","toObject","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","test2","test3","letter","from","symbols","to","decodeComponents","components","left","right","tokens","match","singleMatcher","customDecodeURIComponent","replaceMap","%FE%FF","%FF%FE","multiMatcher","RegExp","encodedURI","__WEBPACK_IMPORTED_MODULE_0__components__","__WEBPACK_IMPORTED_MODULE_1__sign_in_control__","__WEBPACK_IMPORTED_MODULE_2__sign_in_form__","Components","__WEBPACK_IMPORTED_MODULE_0__util__","selector","componentFactory","componentsValue","$components","querySelectorAll","$component","instance","setHelptext","component","helptext","SignInControl","__WEBPACK_IMPORTED_MODULE_2__component__","$input","disabled","hidden","registerInteractionHandler","listener","deregisterInteractionHandler","removeEventListener","SignInForm","focus","$submit","MasterControl","classNames","INITIALIZED","PROGRESS_CLOSED","PROGRESS","$element","$progress","classList","contains","progress","SignUpControl","FacebookComponent","__WEBPACK_IMPORTED_MODULE_1_rxjs_add_observable_fromEventPattern__","__WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_filter__","__WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_switchMap__","__WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_switchMapTo__","__WEBPACK_IMPORTED_MODULE_5_rxjs_BehaviorSubject__","__WEBPACK_IMPORTED_MODULE_6_rxjs_Observable__","__WEBPACK_IMPORTED_MODULE_7__constants__","__WEBPACK_IMPORTED_MODULE_8__core_facebook_api__","snapAuth","formName","status$","handleSignUpInteraction","listenForControlInteraction","listenForStatusChange","fromEventPattern","switchMapTo","switchMap","signIntoFacebook","scope","isConnected","handler","Event","navigate","redirectUrl","messages","authResponse","AccountDoesNotExist","RequirePreviousAuth","ex_2","login","fromEventPattern_1","Function","eval","nextOrObserver","tryCatcher","tryCatchTarget","FromEventPatternObservable_1","FromEventPatternObservable","addHandler","removeHandler","_callSelector","retValue","_callAddHandler","errorSubscriber","filter_1","predicate","FilterOperator","FilterSubscriber","count","switchMap_1","project","resultSelector","SwitchMapOperator","OuterSubscriber_1","subscribeToResult_1","SwitchMapSubscriber","_innerSub","innerSubscription","_tryNotifyNext","symbolIteratorPonyfill","Set_1","Set","Map_1","$$iterator","switchMapTo_1","innerObservable","SwitchMapToOperator","SwitchMapToSubscriber","inner","tryResultSelector","Subject_1","ObjectUnsubscribedError_1","BehaviorSubject","_value","getValue","hasError","thrownError","Subject","SubjectSubscription_1","SubjectSubscriber","observers","subject","AnonymousSubject","copy","SubjectSubscription","asObservable","subscriberIndex","Google","__WEBPACK_IMPORTED_MODULE_2__core_google_api__","client_id","fetch_basic_profile","__WEBPACK_IMPORTED_MODULE_7__google_component__","GoogleComponent","isSignedIn","signOut","handleSignInInteraction","handleGooglePopupError","currentUser","googleUser","idToken","getAuthResponse","id_token","signInForm","__WEBPACK_IMPORTED_MODULE_4__shared_ui__","__WEBPACK_IMPORTED_MODULE_5__snap_component__","__WEBPACK_IMPORTED_MODULE_2__core_snap_auth__","__WEBPACK_IMPORTED_MODULE_3__shared_log__","SnapComponent","evt","preventDefault","generateSignInData","Snap","$form","acc","getElement","elements","element","namedItem","NodeList","HTMLInputElement","checked","__WEBPACK_IMPORTED_MODULE_1__core_facebook_api__","signOutFacebook","signOutGoogle","getAuthInstance","all"],"mappings":"CAAS,SAAUA,GCInB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QAvBA,GAAAD,KA4BAF,GAAAQ,EAAAT,EAGAC,EAAAS,EAAAP,EAGAF,EAAAU,EAAA,SAAAP,EAAAQ,EAAAC,GACAZ,EAAAa,EAAAV,EAAAQ,IACAG,OAAAC,eAAAZ,EAAAQ,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAZ,EAAAmB,EAAA,SAAAf,GACA,GAAAQ,GAAAR,KAAAgB,WACA,WAA2B,MAAAhB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAjB,KAAAc,EAAAC,IAGtDtB,EAAAyB,EAAA,GAGAzB,IAAA0B,EAAA,MDMM,SAAUtB,EAAQuB,EAAqB3B,GAE7C,YEjDA,SAAA4B,GAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnBuB,EAAAvB,EAAAmB,GAEAnB,EAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,IAoCA,QAAAK,GAAAC,EAAAC,EAAAC,EAAAC,GACA,WAAAD,MAAAE,UAAA,SAAAC,EAAAC,GACA,QAAAC,GAAAC,GAAmC,IAAMC,EAAAN,EAAAO,KAAAF,IAA+B,MAAAG,GAAYL,EAAAK,IACpF,QAAAC,GAAAJ,GAAkC,IAAMC,EAAAN,EAAAU,MAAAL,IAAgC,MAAAG,GAAYL,EAAAK,IACpF,QAAAF,GAAAK,GAA+BA,EAAAC,KAAAV,EAAAS,EAAAN,OAAA,GAAAN,GAAA,SAAAG,GAAiEA,EAAAS,EAAAN,SAAyBQ,KAAAT,EAAAK,GACzHH,GAAAN,IAAAc,MAAAjB,EAAAC,QAAAS,UAIA,QAAAQ,GAAAlB,EAAAmB,GAGA,QAAAC,GAAArC,GAAsB,gBAAAsC,GAAsB,MAAAZ,IAAA1B,EAAAsC,KAC5C,QAAAZ,GAAAa,GACA,GAAAC,EAAA,SAAAC,WAAA,kCACA,MAAAC,GAAA,IACA,GAAAF,EAAA,EAAAG,IAAAC,EAAAD,EAAA,EAAAJ,EAAA,YAAAA,EAAA,uBAAAK,IAAAxD,KAAAuD,EAAAJ,EAAA,KAAAP,KAAA,MAAAY,EAEA,QADAD,EAAA,EAAAC,IAAAL,GAAA,EAAAK,EAAAnB,QACAc,EAAA,IACA,cAAAK,EAAAL,CAAuC,MACvC,QAAkC,MAAlCG,GAAAG,SAA2CpB,MAAAc,EAAA,GAAAP,MAAA,EAC3C,QAAAU,EAAAG,QAAkCF,EAAAJ,EAAA,GAAWA,GAAA,EAAU,SACvD,QAAAA,EAAAG,EAAAI,IAAAC,MAAyCL,EAAAM,KAAAD,KAAc,SACvD,SACA,GAAAH,EAAAF,EAAAM,OAAAJ,IAAAK,OAAA,GAAAL,IAAAK,OAAA,UAAAV,EAAA,QAAAA,EAAA,KAA6GG,EAAA,CAAO,UACpH,OAAAH,EAAA,MAAAK,GAAAL,EAAA,GAAAK,EAAA,IAAAL,EAAA,GAAAK,EAAA,KAAgFF,EAAAG,MAAAN,EAAA,EAAiB,OACjG,OAAAA,EAAA,IAAAG,EAAAG,MAAAD,EAAA,IAAwDF,EAAAG,MAAAD,EAAA,GAAgBA,EAAAL,CAAQ,OAChF,GAAAK,GAAAF,EAAAG,MAAAD,EAAA,IAA8CF,EAAAG,MAAAD,EAAA,GAAgBF,EAAAI,IAAAI,KAAAX,EAAgB,OAC9EK,EAAA,IAAAF,EAAAI,IAAAC,MACAL,EAAAM,KAAAD,KAAiC,UAEjCR,EAAAH,EAAAhD,KAAA6B,EAAAyB,GACS,MAAAd,GAAYW,GAAA,EAAAX,GAAae,EAAA,EAAS,QAAUH,EAAAI,EAAA,EACrD,KAAAL,EAAA,QAAAA,GAAA,EAAmC,QAASd,MAAAc,EAAA,GAAAA,EAAA,UAAAP,MAAA,GAvB5C,GAAwGQ,GAAAG,EAAAC,EAAAO,EAAxGT,GAAaG,MAAA,EAAAO,KAAA,WAA6B,KAAAR,EAAA,QAAAA,GAAA,EAA0B,OAAAA,GAAA,IAAeI,QAAAF,OACnF,OAAAK,IAAgBxB,KAAAU,EAAA,GAAAP,MAAAO,EAAA,GAAAgB,OAAAhB,EAAA,IAAqD,kBAAAiB,UAAAH,EAAAG,OAAAC,UAAA,WAAoE,MAAA3C,QAAeuC,EFAvH3C,EAAuB,EAAIC,EAC7B5B,EAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAOgD,KAKlEhD,EAAuB,EAAIQ,EAC3BR,EAAuB,EAAI2B;;;;;;;;;;;;;;AE7D5D,GAAArB,GAAAnB,OAAA8D,iBACMC,uBAAgBC,QAAA,SAAApE,EAAAmB,GAAsCnB,EAAAmE,UAAAhD,IAC5D,SAAAnB,EAAAmB,GAAqB,OAAAJ,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,KAQrBkD,EAAA7D,OAAAiE,QAAA,SAAAhB,GACA,OAAArC,GAAArB,EAAA,EAAAc,EAAA6D,UAAAZ,OAA4C/D,EAAAc,EAAOd,IAAA,CACnDqB,EAAAsD,UAAA3E,EACA,QAAAoB,KAAAC,GAAAZ,OAAAS,UAAAC,eAAAjB,KAAAmB,EAAAD,KAAAsC,EAAAtC,GAAAC,EAAAD,IAEA,MAAAsC,KF2NM,SAAU3D,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAOsD,KACpEjF,EAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAOuD,KACpElF,EAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAOwD,KACpEnF,EAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAOyD,KACpEpF,EAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO0D,KACpErF,EAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO2D,KACpEtF,EAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO4D,KACpEvF,EAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO6D,IGpQnG,IAAYP,IAAZ,SAAYA,GACVA,EAAA,kBACAA,EAAA,gBACAA,EAAA,qBAHUA,UAMZ,IAAYC,IAAZ,SAAYA,GACVA,IAAA,qBACAA,IAAA,6CACAA,IAAA,8CAHUA,UAML,IAAMC,IACXM,UAAW,wBACXC,aAAc,4BACdC,aAAc,kBAGHP,GACXQ,WAAY,YACZC,SAAU,WACVC,gBAAiB,kBAGbC,EAAwBC,SAASC,cAAc,YAA4BC,QAEpEb,GACXc,UAAWJ,EAAqBK,oBAChCC,MAAO,wBAGIf,GACXgB,OAAQP,EAAqBQ,cAC7BC,YAAa,QACbH,MAAO,wBAGHI,EAAQC,OAAeD,KAEhBlB,GACXoB,cAAeF,EAAKG,cACpBC,YAAgBJ,EAAKK,iBAAgB,mBACrCC,YAAgBN,EAAKK,iBAAgB,aAG1BtB,GACXwB,eAAgB,2BAChBC,KAAM,iBACNC,cAAe,2BACfC,YAAa,mBACbC,QAAS,gBACTC,cAAe,uBACfC,iBAAkB,4BHoQd,SAAUlH,EAAQD,EAASH,GAEjC,YIzTA,IAAAuH,GAAAvH,EAAA,GACAwH,EAAAxH,EAAA,IACAyH,EAAAzH,EAAA,IAOA0H,EAAA,WAQA,QAAAA,GAAAC,GACA5F,KAAA6F,WAAA,EACAD,IACA5F,KAAA8F,WAAAF,GAuOA,MA7NAD,GAAAnG,UAAAuG,KAAA,SAAAC,GACA,GAAAC,GAAA,GAAAN,EAGA,OAFAM,GAAAC,OAAAlG,KACAiG,EAAAD,WACAC,GAoHAN,EAAAnG,UAAAoG,UAAA,SAAAO,EAAAC,EAAAC,GACA,GAAAL,GAAAhG,KAAAgG,SACAM,EAAAb,EAAAc,aAAAJ,EAAAC,EAAAC,EAOA,IANAL,EACAA,EAAAxH,KAAA8H,EAAAtG,KAAAkG,QAGAI,EAAAE,IAAAxG,KAAAkG,OAAAlG,KAAA8F,WAAAQ,GAAAtG,KAAAyG,cAAAH,IAEAA,EAAAI,qBACAJ,EAAAI,oBAAA,EACAJ,EAAAK,iBACA,KAAAL,GAAAM,cAGA,OAAAN,IAEAX,EAAAnG,UAAAiH,cAAA,SAAAH,GACA,IACA,MAAAtG,MAAA8F,WAAAQ,GAEA,MAAAO,GACAP,EAAAK,iBAAA,EACAL,EAAAM,eAAAC,EACAP,EAAAF,MAAAS,KAUAlB,EAAAnG,UAAAsH,QAAA,SAAA/F,EAAAgG,GACA,GAAAC,GAAAhH,IASA,IARA+G,IACAvB,EAAAyB,KAAAC,IAAA1B,EAAAyB,KAAAC,GAAAC,QAAA3B,EAAAyB,KAAAC,GAAAC,OAAA1G,QACAsG,EAAAvB,EAAAyB,KAAAC,GAAAC,OAAA1G,QAEA+E,EAAAyB,KAAAxG,UACAsG,EAAAvB,EAAAyB,KAAAxG,WAGAsG,EACA,SAAAK,OAAA,wBAEA,WAAAL,GAAA,SAAArG,EAAAC,GAGA,GAAA0G,EACAA,GAAAL,EAAApB,UAAA,SAAA/E,GACA,GAAAwG,EAKA,IACAtG,EAAAF,GAEA,MAAAgG,GACAlG,EAAAkG,GACAQ,EAAAC,kBAUAvG,GAAAF,IAEaF,EAAAD,MAGbiF,EAAAnG,UAAAsG,WAAA,SAAAyB,GACA,MAAAvH,MAAAkG,OAAAN,UAAA2B,IAOA5B,EAAAnG,UAAAkG,EAAAO,YAAA,WACA,MAAAjG,OAYA2F,EAAAxF,OAAA,SAAAyF,GACA,UAAAD,GAAAC,IAEAD,IAEAvH,GAAAuH,cJgUM,SAAUtH,EAAQuB,EAAqB3B,GAE7C,YK3jBM,SAAAuJ,GAA2BC,GAE/B,GAAMjH,GAAY,WL2kBZ,GAAIK,EACJ,OAAO6G,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,GK7kBXpB,EAAQ4G,IL+kBEE,EAAG1F,MAAQ,CACf,KAAK,GK9kBf,SAAMpB,ELilBI,KAAK,GAED,MKnlBd8G,GAAAnF,QLmlBsB,EAAa,EACzB,KAAK,GAAG,OAAQ,QKhlB9B,OAAO,YAAM,MAAAhC,GAAUO,OAAOF,OAG1B,QAAA+G,GAA6BC,GACjC,MAAqB,gBAAPA,GAAkBA,EAAKC,KAAKC,UAAUF,EAAIG,GAG1D,QAAAA,GAA2BC,EAAUpH,GACnC,MAAOA,aAAiBuG,OAAQvG,EAAMqH,WAAarH,EL2iBtB5C,EAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAOuI,KAElEvI,EAAuB,EAAI4H,EAC3B5H,EAAuB,EAAIgI,CACvC,IAAIF,GAAsCzJ,EAAoB,GKrkBtEkK,EAAO,cL8mBd,SAAU9J,EAAQD,EAASH,GAEjC,cAC4B,SAASmK,GM7mBrC,GAAAC,GAAA,mBAAA1D,gBACA2D,EAAA,mBAAAC,OAAA,mBAAAC,oBACAD,eAAAC,oBAAAD,KACAE,MAAA,KAAAL,KACAM,EAAAL,GAAAI,GAAAH,CACAlK,GAAA6I,KAAAyB,EAIA,WACA,IAAAA,EACA,SAAAtB,OAAA,sENqnB6B5I,KAAKJ,EAASH,EAAoB,MAIzD,SAAUI,EAAQD,EAASH,GAEjC,YOzoBA,IAAA4B,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEA4I,EAAA1K,EAAA,IACA2K,EAAA3K,EAAA,GACA4K,EAAA5K,EAAA,IACA6K,EAAA7K,EAAA,IAWA8K,EAAA,SAAAC,GAUA,QAAAD,GAAAE,EAAA7C,EAAAC,GAMA,OALA2C,EAAAxK,KAAAwB,MACAA,KAAA4G,eAAA,KACA5G,KAAA2G,iBAAA,EACA3G,KAAA0G,oBAAA,EACA1G,KAAAkJ,WAAA,EACAjG,UAAAZ,QACA,OACArC,KAAAmJ,YAAAN,EAAAO,KACA,MACA,QACA,IAAAH,EAAA,CACAjJ,KAAAmJ,YAAAN,EAAAO,KACA,OAEA,mBAAAH,GAAA,CACAA,YAAAF,IACA/I,KAAAmJ,YAAAF,EACAjJ,KAAAmJ,YAAA3C,IAAAxG,QAGAA,KAAA0G,oBAAA,EACA1G,KAAAmJ,YAAA,GAAAE,GAAArJ,KAAAiJ,GAEA,OAEA,QACAjJ,KAAA0G,oBAAA,EACA1G,KAAAmJ,YAAA,GAAAE,GAAArJ,KAAAiJ,EAAA7C,EAAAC,IAuFA,MA5HAxG,GAAAkJ,EAAAC,GAyCAD,EAAAvJ,UAAAsJ,EAAAQ,cAAA,WAAqE,MAAAtJ,OAYrE+I,EAAA5I,OAAA,SAAAY,EAAAqF,EAAAC,GACA,GAAAkB,GAAA,GAAAwB,GAAAhI,EAAAqF,EAAAC,EAEA,OADAkB,GAAAb,oBAAA,EACAa,GASAwB,EAAAvJ,UAAAuB,KAAA,SAAAF,GACAb,KAAAkJ,WACAlJ,KAAAuJ,MAAA1I,IAUAkI,EAAAvJ,UAAA4G,MAAA,SAAAS,GACA7G,KAAAkJ,YACAlJ,KAAAkJ,WAAA,EACAlJ,KAAAwJ,OAAA3C,KASAkC,EAAAvJ,UAAA6G,SAAA,WACArG,KAAAkJ,YACAlJ,KAAAkJ,WAAA,EACAlJ,KAAAyJ,cAGAV,EAAAvJ,UAAA8H,YAAA,WACAtH,KAAA0J,SAGA1J,KAAAkJ,WAAA,EACAF,EAAAxJ,UAAA8H,YAAA9I,KAAAwB,QAEA+I,EAAAvJ,UAAA+J,MAAA,SAAA1I,GACAb,KAAAmJ,YAAApI,KAAAF,IAEAkI,EAAAvJ,UAAAgK,OAAA,SAAA3C,GACA7G,KAAAmJ,YAAA/C,MAAAS,GACA7G,KAAAsH,eAEAyB,EAAAvJ,UAAAiK,UAAA,WACAzJ,KAAAmJ,YAAA9C,WACArG,KAAAsH,eAEAyB,EAAAvJ,UAAAmK,uBAAA,WACA,GAAAhC,GAAA3H,KAAA4J,EAAAjC,EAAAiC,QAAAC,EAAAlC,EAAAkC,QAQA,OAPA7J,MAAA4J,QAAA,KACA5J,KAAA6J,SAAA,KACA7J,KAAAsH,cACAtH,KAAA0J,QAAA,EACA1J,KAAAkJ,WAAA,EACAlJ,KAAA4J,UACA5J,KAAA6J,WACA7J,MAEA+I,GACCH,EAAAkB,aACD1L,GAAA2K,YAMA,IAAAM,GAAA,SAAAL,GAEA,QAAAK,GAAAU,EAAA5D,EAAAC,EAAAC,GACA2C,EAAAxK,KAAAwB,MACAA,KAAA+J,mBACA,IAAAhJ,GACAiJ,EAAAhK,IACA2I,GAAAsB,WAAA9D,GACApF,EAAAoF,EAEAA,IACApF,EAAAoF,EAAApF,KACAqF,EAAAD,EAAAC,MACAC,EAAAF,EAAAE,SACAF,IAAA0C,EAAAO,QACAY,EAAAjL,OAAAoB,OAAAgG,GACAwC,EAAAsB,WAAAD,EAAA1C,cACAtH,KAAAwG,IAAAwD,EAAA1C,YAAA4C,KAAAF,IAEAA,EAAA1C,YAAAtH,KAAAsH,YAAA4C,KAAAlK,QAGAA,KAAAmK,SAAAH,EACAhK,KAAAuJ,MAAAxI,EACAf,KAAAwJ,OAAApD,EACApG,KAAAyJ,UAAApD,EAmFA,MA3GAxG,GAAAwJ,EAAAL,GA0BAK,EAAA7J,UAAAuB,KAAA,SAAAF,GACA,IAAAb,KAAAkJ,WAAAlJ,KAAAuJ,MAAA,CACA,GAAAQ,GAAA/J,KAAA+J,iBACAA,GAAArD,mBAGA1G,KAAAoK,gBAAAL,EAAA/J,KAAAuJ,MAAA1I,IACAb,KAAAsH,cAHAtH,KAAAqK,aAAArK,KAAAuJ,MAAA1I,KAOAwI,EAAA7J,UAAA4G,MAAA,SAAAS,GACA,IAAA7G,KAAAkJ,UAAA,CACA,GAAAa,GAAA/J,KAAA+J,iBACA,IAAA/J,KAAAwJ,OACAO,EAAArD,oBAKA1G,KAAAoK,gBAAAL,EAAA/J,KAAAwJ,OAAA3C,GACA7G,KAAAsH,gBALAtH,KAAAqK,aAAArK,KAAAwJ,OAAA3C,GACA7G,KAAAsH,mBAOA,KAAAyC,EAAArD,mBAEA,KADA1G,MAAAsH,cACAT,CAGAkD,GAAAnD,eAAAC,EACAkD,EAAApD,iBAAA,EACA3G,KAAAsH,iBAIA+B,EAAA7J,UAAA6G,SAAA,WACA,GAAAW,GAAAhH,IACA,KAAAA,KAAAkJ,UAAA,CACA,GAAAa,GAAA/J,KAAA+J,iBACA,IAAA/J,KAAAyJ,UAAA,CACA,GAAAa,GAAA,WAAmD,MAAAtD,GAAAyC,UAAAjL,KAAAwI,EAAAmD,UACnDJ,GAAArD,oBAKA1G,KAAAoK,gBAAAL,EAAAO,GACAtK,KAAAsH,gBALAtH,KAAAqK,aAAAC,GACAtK,KAAAsH,mBAQAtH,MAAAsH,gBAIA+B,EAAA7J,UAAA6K,aAAA,SAAAE,EAAA1J,GACA,IACA0J,EAAA/L,KAAAwB,KAAAmK,SAAAtJ,GAEA,MAAAgG,GAEA,KADA7G,MAAAsH,cACAT,IAGAwC,EAAA7J,UAAA4K,gBAAA,SAAAI,EAAAD,EAAA1J,GACA,IACA0J,EAAA/L,KAAAwB,KAAAmK,SAAAtJ,GAEA,MAAAgG,GAGA,MAFA2D,GAAA5D,eAAAC,EACA2D,EAAA7D,iBAAA,GACA,EAEA,UAEA0C,EAAA7J,UAAAiL,aAAA,WACA,GAAAV,GAAA/J,KAAA+J,iBACA/J,MAAAmK,SAAA,KACAnK,KAAA+J,kBAAA,KACAA,EAAAzC,eAEA+B,GACCN,IPgpBK,SAAU1K,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO8K,IAC9E,IAAIC,GAA2C1M,EAAoB,GQj5B3EyM,GAGXE,KAAM,WRo5BA,IQp5BC,GAAAC,MAAAC,EAAA,EAAAA,EAAA7H,UAAAZ,OAAAyI,IAAAD,EAAAC,GAAA7H,UAAA6H,EAAmB,OAAAC,SAAQH,KAAItJ,MAAZyJ,QAAgBF,IAC1CG,KAAM,WR05BA,IQ15BC,GAAAH,MAAAC,EAAA,EAAAA,EAAA7H,UAAAZ,OAAAyI,IAAAD,EAAAC,GAAA7H,UAAA6H,EAAmB,OAAAC,SAAQC,KAAI1J,MAAZyJ,QAAgBF,IAC1CzE,MAAO,WRg6BD,IQh6BE,GAAAyE,MAAAC,EAAA,EAAAA,EAAA7H,UAAAZ,OAAAyI,IAAAD,EAAAC,GAAA7H,UAAA6H,EAAmB,OAAAC,SAAQ3E,MAAK9E,MAAbyJ,QAAiBF,IAG5CI,UAAS,SAACC,GACR,GAAMC,GAAY,GAAIC,SACtBD,GAAUE,OAAO,MAAO1G,OAAO2G,SAASC,MACxCJ,EAAUE,OAAO,UAAWH,GAE5BM,MAAMb,EAAA,EAAK/F,eACT6G,KAAM,UACNC,OAAQ,OACRlK,KAAM2J,OR06BN,SAAU9M,EAAQD,EAASH,GAEjC,YSxwBA,SAAA0N,GAAAC,GACA,MAAAA,GAAAC,OAAA,SAAAC,EAAAjF,GAA+C,MAAAiF,GAAAC,OAAAlF,YAAAmF,GAAAC,oBAAApF,EAAA+E,OAAA/E,QA7L/C,GAAAqF,GAAAjO,EAAA,IACAkO,EAAAlO,EAAA,IACA0K,EAAA1K,EAAA,IACAmO,EAAAnO,EAAA,IACAoO,EAAApO,EAAA,IACA+N,EAAA/N,EAAA,IAaA6L,EAAA,WAKA,QAAAA,GAAAxC,GAKAtH,KAAA0J,QAAA,EACA1J,KAAA4J,QAAA,KACA5J,KAAA6J,SAAA,KACA7J,KAAAsM,eAAA,KACAhF,IACAtH,KAAAyK,aAAAnD,GAwJA,MA/IAwC,GAAAtK,UAAA8H,YAAA,WACA,GACAsE,GADAW,GAAA,CAEA,KAAAvM,KAAA0J,OAAA,CAGA,GAAA/B,GAAA3H,KAAA4J,EAAAjC,EAAAiC,QAAAC,EAAAlC,EAAAkC,SAAAY,EAAA9C,EAAA8C,aAAA6B,EAAA3E,EAAA2E,cACAtM,MAAA0J,QAAA,EACA1J,KAAA4J,QAAA,KACA5J,KAAA6J,SAAA,KAGA7J,KAAAsM,eAAA,IAKA,KAJA,GAAAE,IAAA,EACAC,EAAA5C,IAAAxH,OAAA,EAGAuH,GACAA,EAAA8C,OAAA1M,MAGA4J,IAAA4C,EAAAC,GAAA5C,EAAA2C,IAAA,IAEA,IAAA7D,EAAAsB,WAAAQ,GAAA,CACA,GAAAkC,GAAAP,EAAAQ,SAAAnC,GAAAjM,KAAAwB,KACA2M,KAAAN,EAAAQ,cACAN,GAAA,EACAX,MAAAS,EAAAQ,YAAA7L,YAAAgL,GAAAC,oBACAN,EAAAU,EAAAQ,YAAA7L,EAAA4K,SAAAS,EAAAQ,YAAA7L,KAGA,GAAAkL,EAAAY,QAAAR,GAGA,IAFAE,GAAA,EACAC,EAAAH,EAAAjK,SACAmK,EAAAC,GAAA,CACA,GAAAM,GAAAT,EAAAE,EACA,IAAAL,EAAAa,SAAAD,GAAA,CACA,GAAAJ,GAAAP,EAAAQ,SAAAG,EAAAzF,aAAA9I,KAAAuO,EACA,IAAAJ,IAAAN,EAAAQ,YAAA,CACAN,GAAA,EACAX,OACA,IAAA/E,GAAAwF,EAAAQ,YAAA7L,CACA6F,aAAAmF,GAAAC,oBACAL,IAAAG,OAAAJ,EAAA9E,EAAA+E,SAGAA,EAAAtJ,KAAAuE,KAMA,GAAA0F,EACA,SAAAP,GAAAC,oBAAAL,KAqBA9B,EAAAtK,UAAAgH,IAAA,SAAAyG,GACA,IAAAA,OAAAnD,EAAAoD,MACA,MAAApD,GAAAoD,KAEA,IAAAD,IAAAjN,KACA,MAAAA,KAEA,IAAAqH,GAAA4F,CACA,cAAAA,IACA,eACA5F,EAAA,GAAAyC,GAAAmD,EACA,cACA,GAAA5F,EAAAqC,QAAA,kBAAArC,GAAAC,YACA,MAAAD,EAEA,IAAArH,KAAA0J,OAEA,MADArC,GAAAC,cACAD,CAEA,sBAAAA,GAAA8F,WAAA,CACA,GAAAC,GAAA/F,CACAA,GAAA,GAAAyC,GACAzC,EAAAiF,gBAAAc,GAEA,KACA,SACA,SAAAhG,OAAA,yBAAA6F,EAAA,2BAKA,OAHAjN,KAAAsM,iBAAAtM,KAAAsM,oBACAhK,KAAA+E,GACAA,EAAA8F,WAAAnN,MACAqH,GAQAyC,EAAAtK,UAAAkN,OAAA,SAAArF,GACA,GAAAgG,GAAArN,KAAAsM,cACA,IAAAe,EAAA,CACA,GAAAC,GAAAD,EAAAE,QAAAlG,IACA,IAAAiG,GACAD,EAAAG,OAAAF,EAAA,KAIAxD,EAAAtK,UAAA2N,WAAA,SAAA3C,GACA,GAAA7C,GAAA3H,KAAA4J,EAAAjC,EAAAiC,QAAAC,EAAAlC,EAAAkC,QACAD,QAAAY,EAKAX,GAKA,IAAAA,EAAA0D,QAAA/C,IAEAX,EAAAvH,KAAAkI,GAJAxK,KAAA6J,UAAAW,GALAxK,KAAA4J,QAAAY,GAYAV,EAAAoD,MAAA,SAAA9D,GAEA,MADAA,GAAAM,QAAA,EACAN,GACK,GAAAU,IACLA,IAEA1L,GAAA0L,gBT88BM,SAAUzL,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO6N,IAC9E,IAAI/F,GAAsCzJ,EAAoB,GAC1DyP,EAA+CzP,EAAoB,IACnE0P,EAA6C1P,EAAoB,GU/nCpF2P,EAAW7O,OAAA4O,EAAA,GAAc,WAAM,UAAIlN,SAAY,SAAAC,GAClDiE,OAAekJ,YAAc,WAAM,MAAAnN,GAASiE,OAAemJ,KAE5D/O,OAAA2O,EAAA,IACEK,IAAK,4CACLC,GAAI,iBACJC,OAAO,EACPC,OAAO,QAIET,GACXU,SACE,MAAOP,MAETQ,MAAA,WVooCM,IUpoCA,GAANpH,GAAAhH,KAAM6K,KAAAC,EAAA,EAAAA,EAAA7H,UAAAZ,OAAAyI,IAAAD,EAAAC,GAAA7H,UAAA6H,EACJ,OAAO,IAAIrK,SAAQ,SAAMC,GAAO,MAAAgH,GAAA,EAAAV,MAAA,wBAAAW,EAAA,OAAAD,GAAA,EAAA1H,KAAA,SAAAqO,GVuoCxB,OAAQA,EAAGpM,OACP,IAAK,GUxoCoB,SAAMwL,EAAYU,GVyoC3C,KAAK,GUzoCmB,UAAAxG,EAAC0G,EAAA7L,QAAsB8L,IAAGhN,MAAAqG,EAAIkD,EAAIkB,QAAErL,cAE1E6N,YAAA,SAAYC,GAAZ,GAAAxH,GAAAhH,IACE,YADU,KAAAwO,OAAA,GACH,GAAI/N,SAAQ,SAAMC,GAAO,MAAAgH,GAAA,EAAAV,MAAA,2BAAAU,GAAA,EAAA1H,KAAA,SAAA2H,GV8oCxB,OAAQA,EAAG1F,OACP,IAAK,GU/oCoB,SAAMwL,EAAYU,GVgpC3C,KAAK,GUhpCmB,SAACxG,EAAAnF,OAAsBiM,eAAe/N,EAAS8N,cVypCjF,SAAUnQ,EAAQuB,EAAqB3B,GAE7C,YWtqCM,SAAAyQ,GAA0B7G,GAC9B,MAAOA,aAAc8G,GAGjB,QAAAC,GAAyB/N,GAC7BgO,EAAchO,EAGV,QAAAiO,GAAuBC,EAAoBC,GXksC7C,MAAOtH,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAIiP,GAASC,EAAWC,EAAUxH,EAAInG,EAAM6M,EAAIe,EAAIC,CACpD,OAAO3H,GAAyD,EAAE1H,KAAM,SAAUsP,GAC9E,OAAQA,EAAGrN,OACP,IAAK,GW1rCF,MAXJoN,MAASA,EAACE,EAAA,EAAY7L,WAAYqL,EAAzCE,EAAiDI,EAEnDR,IACFI,EAAQM,EAAA,EAAY5L,cAAgBkL,GAGhCK,EAAYM,EAAcD,EAAA,EAAa1L,YACzCqL,IACFD,EAAQM,EAAA,EAAY3L,cAAgBsL,IAGrB,EAAMO,EAAYF,EAAA,EAAKzK,YAAakK,EAAMC,GXosC7C,KAAK,GWlsCnB,GAFME,EAAWG,EAAA9M,OAEb2M,EAASO,GACX,OAAM,EAACP,EXusCS,QWpsCVxH,EAAAwH,EAASQ,QXqsCK,IWpsCf,YACT,KXqsCoB,OAAQ,EAAa,EACzB,KAAK,GWtsCF,SAAMR,EAASS,OXusClB,KAAK,GWtsCf,KADMpO,GAAO8N,EAAA9M,OACP,GAAImM,GAAkBnN,EAAK0J,QAAS2E,EAAWrO,EAAKsO,SAAUtO,EAAKuO,KAAMZ,EXysCrE,KAAK,GWvsCqD,MAA9Dd,GAAA2B,EXysCQZ,EAAK,6BWzsC6BD,EAASQ,OAAM,MAAK,EAAMR,EAASc,OX2sCzE,KAAK,GW3sCf,KAAM5B,GAAA/M,UAAA,IAAa8N,EAAiDE,EAAA9M,QX4sC1D,KAAK,GAAG,OAAQ,QWxsC1B,QAAA0N,GAAuBnB,EAAoBC,GX8sC7C,MAAOtH,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAImQ,GAAKlB,EAASmB,EAAgBlB,EAAWC,EAAUxH,EAAInG,EAAM6M,EAAIe,EAAIC,CACzE,OAAO3H,GAAyD,EAAE1H,KAAM,SAAUsP,GAC9E,OAAQA,EAAGrN,OACP,IAAK,GWvsCF,MAVXkO,GAAME,EAAed,EAAA,EAAKvK,aACnBqK,KAASA,EAACE,EAAA,EAAY7L,WAAYqL,EAAzCE,EAAiDI,EAEjDe,EAAiBb,EAAA,EAAaxL,kBAAmByL,GACjDN,EAAYM,EAAcD,EAAA,EAAa1L,YAEzCuM,GAAkBlB,IACpBD,EAAQM,EAAA,EAAY3L,cAAgBsL,IAGrB,EAAMO,EAAYU,EAAKnB,EAAMC,GXgtChC,KAAK,GW9sCnB,GAFME,EAAWG,EAAA9M,OAEb2M,EAASO,GACX,OAAM,EAACP,EXmtCS,QWhtCVxH,EAAAwH,EAASQ,QXitCK,IWhtCf,KXitCe,IWhtCf,YACT,KXitCoB,OAAQ,EAAa,EACzB,KAAK,GWltCF,SAAMR,EAASS,OXmtClB,KAAK,GWltCf,KADMpO,GAAO8N,EAAA9M,OACP,GAAImM,GAAkBnN,EAAK0J,QAAS2E,EAAWrO,EAAKsO,SAAUtO,EAAKuO,KAAMZ,EXqtCrE,KAAK,GWntCqD,MAA9Dd,GAAA2B,EXqtCQZ,EAAK,6BWrtC6BD,EAASQ,OAAM,MAAK,EAAMR,EAASc,OXutCzE,KAAK,GWvtCf,KAAM5B,GAAA/M,UAAA,IAAa8N,EAAiDE,EAAA9M,QXwtC1D,KAAK,GAAG,OAAQ,QWptChC,QAAA6N,GAAwBF,GACtB,GAAMG,GAAWC,GACjB,KAAKD,EACH,MAAOH,EAGT,IAAMK,GAAQC,EAAY1I,WAASJ,KAAEA,EAAC4H,EAAA,EAAazL,UAAWwM,EAAQ3I,GAEtE,OAAUwI,IADaA,EAAI5C,QAAQ,MAAQ,EAAI,IAAM,KACpBiD,CXytC/B,IAAI7I,GWttCR,QAAA4I,KACE,GAAID,GAAWd,EAAcD,EAAA,EAAazL,SAI1C,OAHIf,OAAM+J,QAAQwD,KAChBA,EAAWA,EAAS,IAEK,gBAAbA,GAAwBA,EAASI,YAAUC,OAAYA,GAGvE,QAAAd,GAAoBC,GAClB,GAAK/M,MAAM+J,QAAQgD,GAInB,MAAO,IAAIc,KAAId,EAAQe,IAAI,SAAClJ,GAAmB,OAAlBA,EAAAM,IAAKN,EAAAuD,YAGpC,QAAAuE,GAA2BU,EAAanB,EAAWC,GX0tC/C,WW1tC+C,KAAAA,UX0tCxCvH,EAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAI8Q,EACJ,OAAOpJ,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,GW5tCV,MX6tCS0F,GAAGvF,KAAKE,MAAM,EAAG,EAAG,CAAE,KW7tC/B,EAAMkJ,MAAM2E,GACjBY,YAAa,UACbrF,OAAQ,OACRuD,QAAS,GAAI+B,SAAOtJ,EAAA,GAAEuJ,eAAgB,oBAAuBhC,IAC7DzN,KAAMsG,KAAKC,UAAUiH,KXguCX,KAAK,GWpuCjB,SAAOrH,EAAAnF,OXquCK,KAAK,GW9tCjB,KX+tCgBsO,GAAOnJ,EAAGnF,OW/tCpBwN,EAAac,EXiuCP,KAAK,GAAG,OAAQ,QW7tChC,QAAAd,GAAsB9E,GAEpB,MADAgG,GAAA,EAAIjG,UAAUC,GACP,GAAIyD,GAAkB,iBX+jC/B5P,OAAOC,eAAeY,EAAqB,cAAgBiB,OAAO,IACnC5C,EAAoBU,EAAEiB,EAAqB,oBAAqB,WAAa,MAAO+O,KAClF/O,EAAqC,gBAAI8O,EACzC9O,EAAoC,eAAIgP,EACxChP,EAA4B,OAAIkP,EAChClP,EAA4B,OAAIsQ,CAC5C,IW/rCjBrB,GX+rCqBnH,EAAsCzJ,EAAoB,GAC1DsR,EAA2CtR,EAAoB,GAC/DiT,EAA4CjT,EAAoB,GWrsCnFwS,EAAcxS,EAAQ,IAEtBuR,EAAgBiB,EAAYU,MAAM7F,SAAS8F,QAWjDzC,EAAA,WACE,QAAAA,GACSzD,EACAmG,EACAtB,EACAZ,OAFA,KAAAkC,MAAA,GAAoCT,UACpC,KAAAb,MAAOR,EAAA,EAAU+B,aACjB,KAAAnC,MAAA,MAHAnP,KAAAkL,UACAlL,KAAAqR,WACArR,KAAA+P,OACA/P,KAAAmP,WAEX,MAAAR,OXk1CM,SAAUtQ,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO2R,IAC9E,IAAI5G,GAA2C1M,EAAoB,GAC/DuT,EAA4CvT,EAAoB,IAChEwT,EAAgDxT,EAAoB,IACpEyT,EAAiDzT,EAAoB,GAC7DA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO8R,GAAkD,GYp2ChJ,IAAMH,IACXI,cAAe,GAAIF,GAAA,EAAc9G,EAAA,EAAU1F,gBAC3C2M,MAAO,GAAIJ,GAAA,EAAW7G,EAAA,EAAUzF,KAAM,SAAA2M,GAAM,UAAIL,GAAA,EAAWK,KAC3DR,SAAU,GAAIG,GAAA,EAAW7G,EAAA,EAAUtF,QAAS,SAAAwM,GAAM,UAAIL,GAAA,EAAcK,OZm3ChE,SAAUxT,EAAQD,EAASH,GAEjC,Yap4CA,SAAAgM,GAAA6H,GACA,wBAAAA,GAEA1T,EAAA6L,cb24CM,SAAU5L,EAAQD,EAASH,GAEjC,Ych5CA,IAAAuH,GAAAvH,EAAA,GACAyE,EAAA8C,EAAAyB,KAAAvE,MACAtE,GAAAkL,aAAA,kBAAA5G,IAAA,kBAAAA,GAAAqP,IACArP,EAAAqP,IAAA,iCAIA3T,EAAA4T,eAAA5T,EAAAkL,cdu5CM,SAAUjL,EAAQuB,EAAqB3B,GAE7C,Yej6CA,SAAAgU,GAAqBrT,GACnB,MAAO,MAAMsT,KAAKtT,GAGpB,QAAAuT,GAA0BvT,GACxB,MAAOA,GAAKwT,MAAM,GAAGC,cAGvB,QAAAC,GAAwBC,EAAa3T,EAAciC,GAC7CA,GACF0R,EAAOC,aAAa5T,EAAMiC,GAC1B0R,EAAO3T,IAAQ,GAEf2T,EAAO3T,IAAQ,EAInB,QAAA6T,GAAiBF,EAAiB3T,EAAciC,GAC1CoR,EAAYrT,GACd2T,EAAOG,iBAAiBP,EAAiBvT,GAAOiC,GACtB,iBAAVA,GAChByR,EAAeC,EAAQ3T,EAAMiC,GAE7B0R,EAAOC,aAAa5T,EAAMiC,GAI9B,QAAA8R,GAAkBJ,EAAiBK,GACjC7T,OAAO8T,QAAQD,GAAO9L,QAAQ,SAACa,Gfm6CzB,Gen6C0B/I,GAAA+I,EAAA,GAAM9G,EAAA8G,EAAA,EAAW,OAAA8K,GAAQF,EAAQ3T,EAAMiC,KAGnE,QAAAiS,GAAuBF,GAC3B,GAAMG,GAAS9O,SAAS+O,cAAc,SACtCL,GAASI,EAAQH,EACjB,IAAMK,GAAUhP,SAASiP,qBAAqB,UAAU,EAExD,OADAD,GAAQE,WAAYC,aAAaL,EAAQE,GAClCF,EApCTnT,EAAA,EAAAkT,Gf88CM,SAAUzU,EAAQuB,EAAqB3B,GAE7C,YgBh9CAA,GAAAU,EAAAiB,EAAA,qBAAAyT,IAAA,IAAAA,GAAA,WAuBE,QAAAA,GAAYC,GACVtT,KAAKsT,MAAQA,EACbtT,KAAKpB,KAAOoB,KAAKsT,MAAMnP,QAAQvF,MAAQ,UAE3C,MA1BEG,QAAAC,eAAIqU,EAAA7T,UAAA,KhBu9CEL,IgBv9CN,WACE,MAAOa,MAAKsT,OhBy9CRpU,YAAY,EACZD,cAAc,IgBv9CpBF,OAAAC,eAAIqU,EAAA7T,UAAA,YhB09CEL,IgB19CN,WACS,GAAAoU,GAAAvT,KAAAuT,SACP,OAAoB,OAAbA,EAAoB,KAAOA,EAAUC,ahB49CxCC,IgB19CN,SAAaxD,GACJ,GAAAsD,GAAAvT,KAAAuT,SACP,IAAiB,MAAbA,EAGF,KAAM,IAAInM,OAAM,4CAA4CpH,KAAKpB,KAAI,IAFrE2U,GAAUC,YAAcvD,GhBg+CtB/Q,YAAY,EACZD,cAAc,IgBl9CtBoU,MhB29CM,SAAUhV,EAAQD,EAASH,GAEjC,YiBv/CA,SAAA+O,GAAA8E,GACA,aAAAA,GAAA,gBAAAA,GAEA1T,EAAA4O,YjB8/CM,SAAU3O,EAAQD,EAASH,GAEjC,YkBlgDAG,GAAAyO,aAAuB7L,OlB0gDjB,SAAU3C,EAAQD,EAASH,GAEjC,YmB7gDAG,GAAAgL,OACAM,QAAA,EACA3I,KAAA,SAAAF,KACAuF,MAAA,SAAAS,GAA2B,KAAAA,IAC3BR,SAAA,enBqhDM,SAAUhI,EAAQD,EAASH,GAEjC,YoB1hDA,SAAAyV,GAAA1J,GACA,GAAA2J,GACAjR,EAAAsH,EAAAtH,MAaA,OAZA,kBAAAA,GACAA,EAAAuD,WACA0N,EAAAjR,EAAAuD,YAGA0N,EAAAjR,EAAA,cACAA,EAAAuD,WAAA0N,GAIAA,EAAA,eAEAA,EAhBA,GAAAnO,GAAAvH,EAAA,EAkBAG,GAAAsV,sBACAtV,EAAA6H,WAAAyN,EAAAlO,EAAAyB,MAIA7I,EAAAuV,aAAAvV,EAAA6H,YpBkiDM,SAAU5H,EAAQD,EAASH,GAEjC,YqB3jDA,IAAA4B,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEA6T,EAAA3V,EAAA,GAMA4V,EAAA,SAAA7K,GAEA,QAAA6K,KACA7K,EAAA1H,MAAAtB,KAAAiD,WAWA,MAbApD,GAAAgU,EAAA7K,GAIA6K,EAAArU,UAAAsU,WAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACAnU,KAAAmJ,YAAApI,KAAAiT,IAEAH,EAAArU,UAAA4U,YAAA,SAAAhO,EAAA+N,GACAnU,KAAAmJ,YAAA/C,UAEAyN,EAAArU,UAAA6U,eAAA,SAAAF,GACAnU,KAAAmJ,YAAA9C,YAEAwN,GACCD,EAAA7K,WACD3K,GAAAyV,mBrBkkDM,SAAUxV,EAAQD,EAASH,GAEjC,YsBvlDA,SAAAqW,GAAAC,EAAApT,EAAA4S,EAAAE,GACA,GAAA9K,GAAA,GAAAqL,GAAAC,gBAAAF,EAAAR,EAAAE,EACA,IAAA9K,EAAAO,OACA,WAEA,IAAAvI,YAAAuT,GAAA/O,WACA,MAAAxE,GAAA0E,WACAsD,EAAApI,KAAAI,EAAAN,OACAsI,EAAA9C,WACA,MAGAlF,EAAAyE,UAAAuD,EAGA,IAAAwL,EAAAC,YAAAzT,GAAA,CACA,OAAA7C,GAAA,EAAAmO,EAAAtL,EAAAkB,OAA4C/D,EAAAmO,IAAAtD,EAAAO,OAAgCpL,IAC5E6K,EAAApI,KAAAI,EAAA7C,GAEA6K,GAAAO,QACAP,EAAA9C,eAGA,IAAAwO,EAAAC,UAAA3T,GAWA,MAVAA,GAAAE,KAAA,SAAAR,GACAsI,EAAAO,SACAP,EAAApI,KAAAF,GACAsI,EAAA9C,aAES,SAAAQ,GAAkB,MAAAsC,GAAA/C,MAAAS,KAC3BxF,KAAA,cAAAwF,GAEArB,EAAAyB,KAAA8N,WAAA,WAAgD,KAAAlO,OAEhDsC,CAEA,IAAAhI,GAAA,kBAAAA,GAAA6T,EAAArS,UAEA,IADA,GAAAA,GAAAxB,EAAA6T,EAAArS,cACA,CACA,GAAAsS,GAAAtS,EAAA5B,MACA,IAAAkU,EAAA7T,KAAA,CACA+H,EAAA9C,UACA,OAGA,GADA8C,EAAApI,KAAAkU,EAAApU,OACAsI,EAAAO,OACA,UAIA,IAAAvI,GAAA,kBAAAA,GAAAuE,EAAAO,YAAA,CACA,GAAAiP,GAAA/T,EAAAuE,EAAAO,aACA,sBAAAiP,GAAAtP,UAIA,MAAAsP,GAAAtP,UAAA,GAAA4O,GAAAC,gBAAAF,EAAAR,EAAAE,GAHA9K,GAAA/C,MAAA,GAAAvE,WAAA,uEAMA,CACA,GAAAhB,GAAAsL,EAAAa,SAAA7L,GAAA,wBAAAA,EAAA,IACAgU,EAAA,gBAAAtU,EAAA,2FAEAsI,GAAA/C,MAAA,GAAAvE,WAAAsT,KAEA,YAzEA,GAAA3P,GAAAvH,EAAA,GACA0W,EAAA1W,EAAA,IACA4W,EAAA5W,EAAA,IACAkO,EAAAlO,EAAA,IACAyW,EAAAzW,EAAA,GACA+W,EAAA/W,EAAA,IACAuW,EAAAvW,EAAA,IACAyH,EAAAzH,EAAA,GAoEAG,GAAAkW,qBtBsmDM,SAAUjW,EAAQD,EAASH,GAEjC,YuBnrDA,IAAA4B,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAWAqV,EAAA,SAAApM,GAEA,QAAAoM,KACA,GAAAvO,GAAAmC,EAAAxK,KAAAwB,KAAA,sBACAA,MAAApB,KAAAiI,EAAAjI,KAAA,0BACAoB,KAAAqV,MAAAxO,EAAAwO,MACArV,KAAAkL,QAAArE,EAAAqE,QAEA,MAPArL,GAAAuV,EAAApM,GAOAoM,GACChO,MACDhJ,GAAAgX,2BvB0rDM,SAAU/W,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO0V,IAC9E,IAAI5N,GAAsCzJ,EAAoB,GAC1DyP,EAA+CzP,EAAoB,IACnE0P,EAA6C1P,EAAoB,GwBjtDpF2P,EAAW7O,OAAA4O,EAAA,GAAc,WAAM,UAAIlN,SAAc,SAAAC,GACrD3B,OAAA2O,EAAA,IACEK,IAAK,yCACLwH,OAAQ,WAAM,MAAA7U,GAASiE,OAAe6Q,OACtCvH,OAAO,EACPC,OAAO,QAIEoH,GACXE,WACE,MAAO5H,MAET6H,KAAA,SAAKC,EAAmBC,GAAxB,GAAA3O,GAAAhH,IACE,YADsB,KAAA2V,MAAA,KACf,GAAIlV,SAAQ,SAAOC,EAASC,GAAM,MAAA+G,GAAA,EAAAV,MAAA,qBxButDjC,MAAOU,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,GwBztD0B,SAAMqT,EAAUE,KxB0tD/C,KAAK,GwB1tDyB,SAAC7N,EAAAnF,OAAsBiT,KAAKC,GACxEE,SAAUlV,EACVmV,QAAS,WAAM,MAAAlV,GAAO,gCACtBmV,UAAW,WAAM,MAAAnV,GAAO,2BACxBgV,QAAOA,aAGXI,SAAA,SAASC,GAAT,GAAAhP,GAAAhH,IAEE,OAAO,IAAIS,SAAQ,SAAOC,EAASC,GAAM,MAAA+G,GAAA,EAAAV,MAAA,qBxB+tDjC,MAAOU,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,GwBhuDlB,SAAMqT,EAAUE,KxBiuDH,KAAK,GAGD,MwBpuDjB7N,GAAAnF,OAAsByT,MAAMC,KAAKF,GAC/B3U,KAAK,SAAC8U,GAA2B,MAAAzV,IAASyV,WAAUA,KAAIxV,IxBmuDjC,aAU1B,SAAUtC,EAAQuB,EAAqB3B,GAE7C,YACAc,QAAOC,eAAeY,EAAqB,cAAgBiB,OAAO,GAC7C,IAAIuV,GAA6CnY,EAAoB,IAEjEoY,GADqDpY,EAAoBmB,EAAEgX,GACtBnY,EAAoB,KACzEqY,EAAmDrY,EAAoB,IACvEsY,EAAiDtY,EAAoB,IACrEuY,EAA6CvY,EAAoB,EAC1BA,GAAoB,GyB/wDpFc,QAAAwX,EAAA,KAAWE,MAAMD,EAAA,GACjBzX,OAAAuX,EAAA,KAAaG,MAAMD,EAAA,GACnBzX,OAAAsX,EAAA,KAAeI,MAAMD,EAAA,IzB2xDf,SAAUnY,EAAQD,I0BtyDxB,SAAAmK,GACA,YA2CA,SAAAmO,GAAA9X,GAIA,GAHA,gBAAAA,KACAA,EAAA+X,OAAA/X,IAEA,6BAAAsT,KAAAtT,GACA,SAAAiD,WAAA,yCAEA,OAAAjD,GAAAyT,cAGA,QAAAuE,GAAA/V,GAIA,MAHA,gBAAAA,KACAA,EAAA8V,OAAA9V,IAEAA,EAIA,QAAAgW,GAAAC,GACA,GAAAnU,IACA5B,KAAA,WACA,GAAAF,GAAAiW,EAAAC,OACA,QAAgB3V,SAAAuP,KAAA9P,YAUhB,OANAmW,GAAAC,WACAtU,EAAAD,OAAAC,UAAA,WACA,MAAAA,KAIAA,EAGA,QAAAqO,GAAA/B,GACAjP,KAAA6Q,OAEA5B,YAAA+B,GACA/B,EAAAnI,QAAA,SAAAjG,EAAAjC,GACAoB,KAAAqL,OAAAzM,EAAAiC,IACOb,MACF+C,MAAA+J,QAAAmC,GACLA,EAAAnI,QAAA,SAAAoQ,GACAlX,KAAAqL,OAAA6L,EAAA,GAAAA,EAAA,KACOlX,MACFiP,GACLlQ,OAAAoY,oBAAAlI,GAAAnI,QAAA,SAAAlI,GACAoB,KAAAqL,OAAAzM,EAAAqQ,EAAArQ,KACOoB,MA0DP,QAAAoX,GAAA5V,GACA,GAAAA,EAAA6V,SACA,MAAA5W,SAAAE,OAAA,GAAAkB,WAAA,gBAEAL,GAAA6V,UAAA,EAGA,QAAAC,GAAAC,GACA,UAAA9W,SAAA,SAAAC,EAAAC,GACA4W,EAAAhC,OAAA,WACA7U,EAAA6W,EAAApW,SAEAoW,EAAA1B,QAAA,WACAlV,EAAA4W,EAAAnR,UAKA,QAAAoR,GAAAC,GACA,GAAAF,GAAA,GAAAG,YACAC,EAAAL,EAAAC,EAEA,OADAA,GAAAK,kBAAAH,GACAE,EAGA,QAAAE,GAAAJ,GACA,GAAAF,GAAA,GAAAG,YACAC,EAAAL,EAAAC,EAEA,OADAA,GAAAO,WAAAL,GACAE,EAGA,QAAAI,GAAAC,GAIA,OAHAC,GAAA,GAAAC,YAAAF,GACAG,EAAA,GAAApV,OAAAkV,EAAA5V,QAEA/D,EAAA,EAAmBA,EAAA2Z,EAAA5V,OAAiB/D,IACpC6Z,EAAA7Z,GAAAqY,OAAAyB,aAAAH,EAAA3Z,GAEA,OAAA6Z,GAAAE,KAAA,IAGA,QAAAC,GAAAN,GACA,GAAAA,EAAA5F,MACA,MAAA4F,GAAA5F,MAAA,EAEA,IAAA6F,GAAA,GAAAC,YAAAF,EAAAO,WAEA,OADAN,GAAAxE,IAAA,GAAAyE,YAAAF,IACAC,EAAAO,OAIA,QAAAC,KA0FA,MAzFAzY,MAAAqX,UAAA,EAEArX,KAAA0Y,UAAA,SAAAlX,GAEA,GADAxB,KAAA2Y,UAAAnX,EACAA,EAEO,mBAAAA,GACPxB,KAAA4Y,UAAApX,MACO,IAAAwV,EAAAS,MAAAoB,KAAArZ,UAAAsZ,cAAAtX,GACPxB,KAAA+Y,UAAAvX,MACO,IAAAwV,EAAAgC,UAAA5N,SAAA5L,UAAAsZ,cAAAtX,GACPxB,KAAAiZ,cAAAzX,MACO,IAAAwV,EAAAkC,cAAAC,gBAAA3Z,UAAAsZ,cAAAtX,GACPxB,KAAA4Y,UAAApX,EAAA0G,eACO,IAAA8O,EAAAoC,aAAApC,EAAAS,MAAA4B,EAAA7X,GACPxB,KAAAsZ,iBAAAhB,EAAA9W,EAAAgX,QAEAxY,KAAA2Y,UAAA,GAAAE,OAAA7Y,KAAAsZ,uBACO,KAAAtC,EAAAoC,cAAAG,YAAA/Z,UAAAsZ,cAAAtX,KAAAgY,EAAAhY,GAGP,SAAA4F,OAAA,4BAFApH,MAAAsZ,iBAAAhB,EAAA9W,OAdAxB,MAAA4Y,UAAA,EAmBA5Y,MAAAiP,QAAA9P,IAAA,kBACA,gBAAAqC,GACAxB,KAAAiP,QAAAwE,IAAA,2CACSzT,KAAA+Y,WAAA/Y,KAAA+Y,UAAAU,KACTzZ,KAAAiP,QAAAwE,IAAA,eAAAzT,KAAA+Y,UAAAU,MACSzC,EAAAkC,cAAAC,gBAAA3Z,UAAAsZ,cAAAtX,IACTxB,KAAAiP,QAAAwE,IAAA,oEAKAuD,EAAAS,OACAzX,KAAAyX,KAAA,WACA,GAAAxW,GAAAmW,EAAApX,KACA,IAAAiB,EACA,MAAAA,EAGA,IAAAjB,KAAA+Y,UACA,MAAAtY,SAAAC,QAAAV,KAAA+Y,UACS,IAAA/Y,KAAAsZ,iBACT,MAAA7Y,SAAAC,QAAA,GAAAmY,OAAA7Y,KAAAsZ,mBACS,IAAAtZ,KAAAiZ,cACT,SAAA7R,OAAA,uCAEA,OAAA3G,SAAAC,QAAA,GAAAmY,OAAA7Y,KAAA4Y,cAIA5Y,KAAAoZ,YAAA,WACA,MAAApZ,MAAAsZ,iBACAlC,EAAApX,OAAAS,QAAAC,QAAAV,KAAAsZ,kBAEAtZ,KAAAyX,OAAApW,KAAAmW,KAKAxX,KAAAiQ,KAAA,WACA,GAAAhP,GAAAmW,EAAApX,KACA,IAAAiB,EACA,MAAAA,EAGA,IAAAjB,KAAA+Y,UACA,MAAAlB,GAAA7X,KAAA+Y,UACO,IAAA/Y,KAAAsZ,iBACP,MAAA7Y,SAAAC,QAAAqX,EAAA/X,KAAAsZ,kBACO,IAAAtZ,KAAAiZ,cACP,SAAA7R,OAAA,uCAEA,OAAA3G,SAAAC,QAAAV,KAAA4Y,YAIA5B,EAAAgC,WACAhZ,KAAAgZ,SAAA,WACA,MAAAhZ,MAAAiQ,OAAA5O,KAAAqY,KAIA1Z,KAAA4P,KAAA,WACA,MAAA5P,MAAAiQ,OAAA5O,KAAAyG,KAAAqJ,QAGAnR,KAMA,QAAA2Z,GAAAjO,GACA,GAAAkO,GAAAlO,EAAAmO,aACA,OAAAC,GAAAvM,QAAAqM,IAAA,EAAAA,EAAAlO,EAGA,QAAAqO,GAAAC,EAAAC,GACAA,OACA,IAAAzY,GAAAyY,EAAAzY,IAEA,IAAAwY,YAAAD,GAAA,CACA,GAAAC,EAAA3C,SACA,SAAAxV,WAAA,eAEA7B,MAAAmQ,IAAA6J,EAAA7J,IACAnQ,KAAA+Q,YAAAiJ,EAAAjJ,YACAkJ,EAAAhL,UACAjP,KAAAiP,QAAA,GAAA+B,GAAAgJ,EAAA/K,UAEAjP,KAAA0L,OAAAsO,EAAAtO,OACA1L,KAAAyL,KAAAuO,EAAAvO,KACAjK,GAAA,MAAAwY,EAAArB,YACAnX,EAAAwY,EAAArB,UACAqB,EAAA3C,UAAA,OAGArX,MAAAmQ,IAAAwG,OAAAqD,EAWA,IARAha,KAAA+Q,YAAAkJ,EAAAlJ,aAAA/Q,KAAA+Q,aAAA,QACAkJ,EAAAhL,SAAAjP,KAAAiP,UACAjP,KAAAiP,QAAA,GAAA+B,GAAAiJ,EAAAhL,UAEAjP,KAAA0L,OAAAiO,EAAAM,EAAAvO,QAAA1L,KAAA0L,QAAA,OACA1L,KAAAyL,KAAAwO,EAAAxO,MAAAzL,KAAAyL,MAAA,KACAzL,KAAAsQ,SAAA,MAEA,QAAAtQ,KAAA0L,QAAA,SAAA1L,KAAA0L,SAAAlK,EACA,SAAAK,WAAA,4CAEA7B,MAAA0Y,UAAAlX,GAOA,QAAAkY,GAAAlY,GACA,GAAA0Y,GAAA,GAAA9O,SASA,OARA5J,GAAAkP,OAAAyJ,MAAA,KAAArT,QAAA,SAAAsT,GACA,GAAAA,EAAA,CACA,GAAAD,GAAAC,EAAAD,MAAA,KACAvb,EAAAub,EAAApD,QAAAsD,QAAA,WACAxZ,EAAAsZ,EAAA9B,KAAA,KAAAgC,QAAA,UACAH,GAAA7O,OAAAiP,mBAAA1b,GAAA0b,mBAAAzZ,OAGAqZ,EAGA,QAAAK,GAAAC,GACA,GAAAvL,GAAA,GAAA+B,EASA,OARAwJ,GAAAL,MAAA,SAAArT,QAAA,SAAA2T,GACA,GAAAC,GAAAD,EAAAN,MAAA,KACAlS,EAAAyS,EAAA3D,QAAArG,MACA,IAAAzI,EAAA,CACA,GAAApH,GAAA6Z,EAAArC,KAAA,KAAA3H,MACAzB,GAAA5D,OAAApD,EAAApH,MAGAoO,EAKA,QAAA0L,GAAAC,EAAAX,GACAA,IACAA,MAGAja,KAAAyZ,KAAA,UACAzZ,KAAA2P,OAAA,UAAAsK,KAAAtK,OAAA,IACA3P,KAAA0P,GAAA1P,KAAA2P,QAAA,KAAA3P,KAAA2P,OAAA,IACA3P,KAAA6a,WAAA,cAAAZ,KAAAY,WAAA,KACA7a,KAAAiP,QAAA,GAAA+B,GAAAiJ,EAAAhL,SACAjP,KAAAmQ,IAAA8J,EAAA9J,KAAA,GACAnQ,KAAA0Y,UAAAkC,GA7XA,IAAArS,EAAAiD,MAAA,CAIA,GAAAwL,IACAkC,aAAA,mBAAA3Q,GACA0O,SAAA,UAAA1O,IAAA,YAAA7F,QACA+U,KAAA,cAAAlP,IAAA,QAAAA,IAAA,WACA,IAEA,MADA,IAAAsQ,OACA,EACO,MAAA7X,GACP,aAGAgY,SAAA,YAAAzQ,GACA6Q,YAAA,eAAA7Q,GAGA,IAAAyO,EAAAoC,YACA,GAAA0B,IACA,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,yBAGAzB,EAAA,SAAA0B,GACA,MAAAA,IAAAC,SAAAxb,UAAAsZ,cAAAiC,IAGAvB,EAAAD,YAAA0B,QAAA,SAAAF,GACA,MAAAA,IAAAD,EAAAvN,QAAAxO,OAAAS,UAAA0I,SAAA1J,KAAAuc,KAAA,EAyDA/J,GAAAxR,UAAA6L,OAAA,SAAAzM,EAAAiC,GACAjC,EAAA8X,EAAA9X,GACAiC,EAAA+V,EAAA/V,EACA,IAAAqa,GAAAlb,KAAA6Q,IAAAjS,EACAoB,MAAA6Q,IAAAjS,GAAAsc,IAAA,IAAAra,KAGAmQ,EAAAxR,UAAA,gBAAAZ,SACAoB,MAAA6Q,IAAA6F,EAAA9X,KAGAoS,EAAAxR,UAAAL,IAAA,SAAAP,GAEA,MADAA,GAAA8X,EAAA9X,GACAoB,KAAAmb,IAAAvc,GAAAoB,KAAA6Q,IAAAjS,GAAA,MAGAoS,EAAAxR,UAAA2b,IAAA,SAAAvc,GACA,MAAAoB,MAAA6Q,IAAApR,eAAAiX,EAAA9X,KAGAoS,EAAAxR,UAAAiU,IAAA,SAAA7U,EAAAiC,GACAb,KAAA6Q,IAAA6F,EAAA9X,IAAAgY,EAAA/V,IAGAmQ,EAAAxR,UAAAsH,QAAA,SAAA8O,EAAAvV,GACA,OAAAzB,KAAAoB,MAAA6Q,IACA7Q,KAAA6Q,IAAApR,eAAAb,IACAgX,EAAApX,KAAA6B,EAAAL,KAAA6Q,IAAAjS,KAAAoB,OAKAgR,EAAAxR,UAAA4b,KAAA,WACA,GAAAtE,KAEA,OADA9W,MAAA8G,QAAA,SAAAjG,EAAAjC,GAAwCkY,EAAAxU,KAAA1D,KACxCiY,EAAAC,IAGA9F,EAAAxR,UAAA6b,OAAA,WACA,GAAAvE,KAEA,OADA9W,MAAA8G,QAAA,SAAAjG,GAAkCiW,EAAAxU,KAAAzB,KAClCgW,EAAAC,IAGA9F,EAAAxR,UAAAqT,QAAA,WACA,GAAAiE,KAEA,OADA9W,MAAA8G,QAAA,SAAAjG,EAAAjC,GAAwCkY,EAAAxU,MAAA1D,EAAAiC,MACxCgW,EAAAC,IAGAE,EAAAC,WACAjG,EAAAxR,UAAAkD,OAAAC,UAAAqO,EAAAxR,UAAAqT,QAqJA,IAAAiH,IAAA,6CA4CAC,GAAAva,UAAA8b,MAAA,WACA,UAAAvB,GAAA/Z,MAA8BwB,KAAAxB,KAAA2Y,aA6B9BF,EAAAja,KAAAub,EAAAva,WAgBAiZ,EAAAja,KAAAmc,EAAAnb,WAEAmb,EAAAnb,UAAA8b,MAAA,WACA,UAAAX,GAAA3a,KAAA2Y,WACAhJ,OAAA3P,KAAA2P,OACAkL,WAAA7a,KAAA6a,WACA5L,QAAA,GAAA+B,GAAAhR,KAAAiP,SACAkB,IAAAnQ,KAAAmQ,OAIAwK,EAAAvU,MAAA,WACA,GAAA+I,GAAA,GAAAwL,GAAA,MAAuChL,OAAA,EAAAkL,WAAA,IAEvC,OADA1L,GAAAsK,KAAA,QACAtK,EAGA,IAAAoM,IAAA,oBAEAZ,GAAAa,SAAA,SAAArL,EAAAR,GACA,QAAA4L,EAAAhO,QAAAoC,GACA,SAAA8L,YAAA,sBAGA,WAAAd,GAAA,MAA+BhL,SAAAV,SAA0B3D,SAAA6E,MAGzD5H,EAAAyI,UACAzI,EAAAwR,UACAxR,EAAAoS,WAEApS,EAAAiD,MAAA,SAAAwO,EAAA9D,GACA,UAAAzV,SAAA,SAAAC,EAAAC,GACA,GAAA+a,GAAA,GAAA3B,GAAAC,EAAA9D,GACAyF,EAAA,GAAAC,eAEAD,GAAApG,OAAA,WACA,GAAA0E,IACAtK,OAAAgM,EAAAhM,OACAkL,WAAAc,EAAAd,WACA5L,QAAAsL,EAAAoB,EAAAE,yBAAA,IAEA5B,GAAA9J,IAAA,eAAAwL,KAAAG,YAAA7B,EAAAhL,QAAA9P,IAAA,gBACA,IAAAqC,GAAA,YAAAma,KAAAxM,SAAAwM,EAAAI,YACArb,GAAA,GAAAia,GAAAnZ,EAAAyY,KAGA0B,EAAA9F,QAAA,WACAlV,EAAA,GAAAkB,WAAA,4BAGA8Z,EAAA7F,UAAA,WACAnV,EAAA,GAAAkB,WAAA,4BAGA8Z,EAAAK,KAAAN,EAAAhQ,OAAAgQ,EAAAvL,KAAA,GAEA,YAAAuL,EAAA3K,cACA4K,EAAAM,iBAAA,GAGA,gBAAAN,IAAA3E,EAAAS,OACAkE,EAAAO,aAAA,QAGAR,EAAAzM,QAAAnI,QAAA,SAAAjG,EAAAjC,GACA+c,EAAAQ,iBAAAvd,EAAAiC,KAGA8a,EAAAS,SAAA,KAAAV,EAAA/C,UAAA,KAAA+C,EAAA/C,cAGApQ,EAAAiD,MAAA6Q,UAAA,IACC,mBAAA9T,WAAAvI,O1B6yDK,SAAU3B,EAAQuB,EAAqB3B,GAE7C,Y2BnvEM,SAAAiY,K3BswEF,MAAOxO,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAIsc,GAAeC,EAASC,EAAerO,EAAI2C,EAAM5F,CACrD,OAAOxD,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,G2BtwEjB,G3BuwEgB0F,EAAGvF,KAAKE,MAAM,EAAG,EAAG,CAAE,I2BvwEjB,OAFfga,EAAgBG,EAAA,EAAGpL,SAASlS,IAAIoQ,EAAA,EAASmN,WAG7C,KAAM,IAAItV,OAAM,6BAA6BmI,EAAA,EAASmN,SAAQ,KAKhE,IAAe,OAFTH,EAAUD,EAAcK,EAAEzY,cAAc,2BAG5C,KAAM,IAAIkD,OAAM,4BAMP,OAHLoV,GAAgB,GAAIC,GAAA,EAAcF,IAG7B,EAAMK,EAAA,EAAYzO,G3BqwEjB,KAAK,G2B5vEjB,MATMA,GAAKxG,EAAAnF,OAGX2L,EAAG+H,MACD2G,MAAOtN,EAAA,EAAehL,OACtBuY,QAASvN,EAAA,EAAe9K,YACxBkL,QAAQ,KAGV,EAAO,GAAIoN,GAAA,EAAkB5O,EAAI6O,EAAUV,EAAeE,EAAeC,EAAA,EAAIQ,EAAA,EAAK1N,EAAA,EAAejL,O3BqwErF,KAAK,G2B/vEjB,K3BgwEgBwM,GAAOnJ,EAAGnF,O2BnwEpB0I,EAAUnM,OAAAme,EAAA,GAAmBpM,GACnCmM,EAAA,EAAIjS,KAAKE,GACT+R,EAAA,EAAIhS,UAAUC,GACR,GAAI9D,OAAM8D,E3BqwEJ,KAAK,GAAG,OAAQ,QAjDCtL,EAAuB,EAAIsW,CACvC,IAAIxO,GAAsCzJ,EAAoB,GAC1DsR,EAA2CtR,EAAoB,GAC/D2e,EAAmD3e,EAAoB,GACvE+e,EAAgD/e,EAAoB,GACpEgf,EAA4Chf,EAAoB,GAChEwe,EAA2Cxe,EAAoB,IAC/Dif,EAA6Cjf,EAAoB,GACjE8e,EAAoD9e,EAAoB,KAkD3F,SAAUI,EAAQD,EAASH,GAEjC,Y4BnzEA,SAAAkf,GAAAC,GACA,OAAAA,EAAAC,aACA,YACA,gBAAApV,EAAApH,EAAA2L,GACA,cAAA3L,GACAyc,EAAArV,EAAAmV,GACA,IACA5Q,EACA,KACA6L,KAAA,KACAiF,EAAArV,EAAAmV,GACA,IACAE,EAAA9Q,EAAA4Q,GACA,KACAE,EAAAzc,EAAAuc,IACA/E,KAAA,IAGA,eACA,gBAAApQ,EAAApH,GACA,cAAAA,EAAAyc,EAAArV,EAAAmV,IACAE,EAAArV,EAAAmV,GACA,MACAE,EAAAzc,EAAAuc,IACA/E,KAAA,IAGA,SACA,gBAAApQ,EAAApH,GACA,cAAAA,EAAAyc,EAAArV,EAAAmV,IACAE,EAAArV,EAAAmV,GACA,IACAE,EAAAzc,EAAAuc,IACA/E,KAAA,MAKA,QAAAkF,GAAAH,GACA,GAAAjc,EAEA,QAAAic,EAAAC,aACA,YACA,gBAAApV,EAAApH,EAAA2c,GAKA,GAJArc,EAAA,aAAAsc,KAAAxV,GAEAA,IAAAoS,QAAA,gBAEAlZ,EAEA,YADAqc,EAAAvV,GAAApH,OAIA8P,KAAA6M,EAAAvV,KACAuV,EAAAvV,OAGAuV,EAAAvV,GAAA9G,EAAA,IAAAN,EAGA,eACA,gBAAAoH,EAAApH,EAAA2c,GAIA,MAHArc,GAAA,UAAAsc,KAAAxV,GACAA,IAAAoS,QAAA,YAEAlZ,MAGKwP,KAAA6M,EAAAvV,QACLuV,EAAAvV,IAAApH,SAIA2c,EAAAvV,MAAA8D,OAAAyR,EAAAvV,GAAApH,SAPA2c,EAAAvV,GAAApH,GAUA,SACA,gBAAAoH,EAAApH,EAAA2c,GACA,OAAA7M,KAAA6M,EAAAvV,GAEA,YADAuV,EAAAvV,GAAApH,EAIA2c,GAAAvV,MAAA8D,OAAAyR,EAAAvV,GAAApH,KAKA,QAAAyc,GAAAzc,EAAAuc,GACA,MAAAA,GAAAE,OACAF,EAAAM,OAAAC,EAAA9c,GAAA+c,mBAAA/c,GAGAA,EAGA,QAAAgd,GAAA7D,GACA,MAAAjX,OAAA+J,QAAAkN,GACAA,EAAA8D,OACE,gBAAA9D,GACF6D,EAAA9e,OAAAqc,KAAApB,IAAA8D,KAAA,SAAAC,EAAAje,GACA,MAAAke,QAAAD,GAAAC,OAAAle,KACG+Q,IAAA,SAAA5I,GACH,MAAA+R,GAAA/R,KAIA+R,EA/GA,GAAA2D,GAAA1f,EAAA,IACAggB,EAAAhgB,EAAA,IACAigB,EAAAjgB,EAAA,GAgHAG,GAAA+f,QAAA,SAAAC,GACA,MAAAA,GAAAjE,MAAA,aAGA/b,EAAA+S,MAAA,SAAAiN,EAAAhB,GACAA,EAAAa,GAAsBZ,YAAA,QAAoBD,EAE1C,IAAAiB,GAAAd,EAAAH,GAIAkB,EAAAvf,OAAAoB,OAAA,KAEA,uBAAAie,GACAE,GAGAF,IAAA1N,OAAA2J,QAAA,kBAMA+D,EAAAjE,MAAA,KAAArT,QAAA,SAAA0J,GACA,GAAAkK,GAAAlK,EAAA6J,QAAA,WAAAF,MAAA,KAGAlS,EAAAyS,EAAA3D,QACAwH,EAAA7D,EAAArY,OAAA,EAAAqY,EAAArC,KAAA,SAAA1H,EAIA4N,OAAA5N,KAAA4N,EAAA,KAAAL,EAAAK,GAEAF,EAAAH,EAAAjW,GAAAsW,EAAAD,KAGAvf,OAAAqc,KAAAkD,GAAAR,OAAAjS,OAAA,SAAA1K,EAAA8G,GACA,GAAAsW,GAAAD,EAAArW,EAQA,OAPAuW,SAAAD,IAAA,gBAAAA,KAAAxb,MAAA+J,QAAAyR,GAEApd,EAAA8G,GAAA4V,EAAAU,GAEApd,EAAA8G,GAAAsW,EAGApd,GACEpC,OAAAoB,OAAA,QA3BFme,GA8BAlgB,EAAA2J,UAAA,SAAAgT,EAAAqC,GAOAA,EAAAa,GALAX,QAAA,EACAI,QAAA,EACAL,YAAA,QAGAD,EAEA,IAAAiB,GAAAlB,EAAAC,EAEA,OAAArC,GAAAhc,OAAAqc,KAAAL,GAAA+C,OAAAjN,IAAA,SAAA5I,GACA,GAAAsW,GAAAxD,EAAA9S,EAEA,QAAA0I,KAAA4N,EACA,QAGA,WAAAA,EACA,MAAAjB,GAAArV,EAAAmV,EAGA,IAAAra,MAAA+J,QAAAyR,GAAA,CACA,GAAApd,KAUA,OARAod,GAAAnM,QAAAtL,QAAA,SAAA2X,OACA9N,KAAA8N,GAIAtd,EAAAmB,KAAA+b,EAAApW,EAAAwW,EAAAtd,EAAAkB,WAGAlB,EAAAkX,KAAA,KAGA,MAAAiF,GAAArV,EAAAmV,GAAA,IAAAE,EAAAiB,EAAAnB,KACEsB,OAAA,SAAA5M,GACF,MAAAA,GAAAzP,OAAA,IACEgW,KAAA,U5B+zEI,SAAUha,EAAQD,EAASH,GAEjC,Y6B5gFAI,GAAAD,QAAA,SAAAggB,GACA,MAAAR,oBAAAQ,GAAA/D,QAAA,oBAAA3b,GACA,UAAAA,EAAAigB,WAAA,GAAAzW,SAAA,IAAA2R,kB7BqhFM,SAAUxb,EAAQD,EAASH,GAEjC,Y8B9gFA,SAAA2gB,GAAAL,GACA,UAAAA,OAAA5N,KAAA4N,EACA,SAAA1c,WAAA,wDAGA,OAAA9C,QAAAwf;;;;;AATA,GAAAM,GAAA9f,OAAA8f,sBACApf,EAAAV,OAAAS,UAAAC,eACAqf,EAAA/f,OAAAS,UAAAuf,oBAsDA1gB,GAAAD,QA5CA,WACA,IACA,IAAAW,OAAAiE,OACA,QAMA,IAAAgc,GAAA,GAAArI,QAAA,MAEA,IADAqI,EAAA,QACA,MAAAjgB,OAAAoY,oBAAA6H,GAAA,GACA,QAKA,QADAC,MACA3gB,EAAA,EAAiBA,EAAA,GAAQA,IACzB2gB,EAAA,IAAAtI,OAAAyB,aAAA9Z,KAKA,mBAHAS,OAAAoY,oBAAA8H,GAAApO,IAAA,SAAAzR,GACA,MAAA6f,GAAA7f,KAEAiZ,KAAA,IACA,QAIA,IAAA6G,KAIA,OAHA,uBAAA/E,MAAA,IAAArT,QAAA,SAAAqY,GACAD,EAAAC,OAGA,yBADApgB,OAAAqc,KAAArc,OAAAiE,UAAkCkc,IAAA7G,KAAA,IAMhC,MAAAxR,GAEF,aAIA9H,OAAAiE,OAAA,SAAAuP,EAAArM,GAKA,OAJAkZ,GAEAC,EADAC,EAAAV,EAAArM,GAGA5S,EAAA,EAAgBA,EAAAsD,UAAAZ,OAAsB1C,IAAA,CACtCyf,EAAArgB,OAAAkE,UAAAtD,GAEA,QAAAsI,KAAAmX,GACA3f,EAAAjB,KAAA4gB,EAAAnX,KACAqX,EAAArX,GAAAmX,EAAAnX,GAIA,IAAA4W,EAAA,CACAQ,EAAAR,EAAAO,EACA,QAAA9gB,GAAA,EAAkBA,EAAA+gB,EAAAhd,OAAoB/D,IACtCwgB,EAAAtgB,KAAA4gB,EAAAC,EAAA/gB,MACAghB,EAAAD,EAAA/gB,IAAA8gB,EAAAC,EAAA/gB,MAMA,MAAAghB,K9BiiFM,SAAUjhB,EAAQD,EAASH,GAEjC,Y+BtnFA,SAAAshB,GAAAC,EAAArF,GACA,IAEA,MAAAG,oBAAAkF,EAAAnH,KAAA,KACE,MAAAxR,IAIF,OAAA2Y,EAAAnd,OACA,MAAAmd,EAGArF,MAAA,CAGA,IAAAsF,GAAAD,EAAApN,MAAA,EAAA+H,GACAuF,EAAAF,EAAApN,MAAA+H,EAEA,OAAApX,OAAAvD,UAAAuM,OAAAvN,QAAA+gB,EAAAE,GAAAF,EAAAG,IAGA,QAAAhG,GAAAM,GACA,IACA,MAAAM,oBAAAN,GACE,MAAAnT,GAGF,OAFA8Y,GAAA3F,EAAA4F,MAAAC,GAEAvhB,EAAA,EAAiBA,EAAAqhB,EAAAtd,OAAmB/D,IACpC0b,EAAAuF,EAAAI,EAAArhB,GAAA+Z,KAAA,IAEAsH,EAAA3F,EAAA4F,MAAAC,EAGA,OAAA7F,IAIA,QAAA8F,GAAA9F,GAQA,IANA,GAAA+F,IACAC,SAAA,KACAC,SAAA,MAGAL,EAAAM,EAAAzC,KAAAzD,GACA4F,GAAA,CACA,IAEAG,EAAAH,EAAA,IAAAtF,mBAAAsF,EAAA,IACG,MAAA/Y,GACH,GAAA1F,GAAAuY,EAAAkG,EAAA,GAEAze,KAAAye,EAAA,KACAG,EAAAH,EAAA,IAAAze,GAIAye,EAAAM,EAAAzC,KAAAzD,GAIA+F,EAAA,UAIA,QAFAlN,GAAA9T,OAAAqc,KAAA2E,GAEAzhB,EAAA,EAAgBA,EAAAuU,EAAAxQ,OAAoB/D,IAAA,CAEpC,GAAA2J,GAAA4K,EAAAvU,EACA0b,KAAAK,QAAA,GAAA8F,QAAAlY,EAAA,KAAA8X,EAAA9X,IAGA,MAAA+R,GA3EA,GACA6F,GAAA,GAAAM,QADA,eACA,MACAD,EAAA,GAAAC,QAAA,uBA4EA9hB,GAAAD,QAAA,SAAAgiB,GACA,mBAAAA,GACA,SAAAve,WAAA,4DAAAue,GAAA,IAGA,KAIA,MAHAA,KAAA/F,QAAA,WAGAC,mBAAA8F,GACE,MAAAvZ,GAEF,MAAAiZ,GAAAM,M/BmoFM,SAAU/hB,EAAQuB,EAAqB3B,GAE7C,YACqB,IAAIoiB,GAA4CpiB,EAAoB,GAC9CA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAOygB,GAA6C,GACvI,IAAIC,GAAiDriB,EAAoB,GACnDA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO0gB,GAAkD,GAC5I,IAAIC,GAA8CtiB,EAAoB,GAChDA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO2gB,GAA+C,KAQxJ,SAAUliB,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO4gB,IAC9E,IAAIC,GAAsCxiB,EAAoB,GgC/uFnFuiB,EAAA,WAGE,QAAAA,GAAYE,EAAkBC,GAC5B3gB,KAAK4gB,gBAAkB7hB,OAAA0hB,EAAA,GAAc,WACnC,GAAMI,GAAc9d,MAAMqc,KAAKnb,SAAS6c,iBAAiBJ,GACzD,OAAO,IAAI9P,KAAIiQ,EAAYhQ,IAAI,SAAAkQ,GAC7B,GAAMC,GAAWL,EAAiBI,EAClC,QAAQC,EAASpiB,KAAMoiB,QAc/B,MATER,GAAAhhB,UAAAL,IAAA,SAAIP,GACF,MAAOoB,MAAK4gB,kBAAkBzhB,IAAIP,IAGpC4hB,EAAAhhB,UAAAyhB,YAAA,SAAY5F,OAAA,KAAAA,MAAA,GAAazK,MACvB5Q,KAAK4gB,kBAAkB9Z,QAAQ,SAAAoa,GAC7BA,EAAUC,SAAW9F,EAAOlc,IAAI+hB,EAAUtiB,OAAS,MAGzD4hB,MhCqvFM,SAAUniB,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAOwhB,IAC9E,IAAI1Z,GAAsCzJ,EAAoB,GAC1DsR,EAA2CtR,EAAoB,GAC/DojB,EAA2CpjB,EAAoB,IiCjxFxFmjB,EAAA,SAAApY,GAAA,QAAAoY,KjCwxFQ,MAAkB,QAAXpY,GAAmBA,EAAO1H,MAAMtB,KAAMiD,YAAcjD,KiCtvFnE,MAlCmC0H,GAAA,EAAA0Z,EAAApY,GACjCjK,OAAAC,eAAIoiB,EAAA5hB,UAAA,YjC0xFEL,IiC1xFN,WACE,MAAOa,MAAKshB,OAAOC,UjC4xFf9N,IiC1xFN,SAAa5S,GACXb,KAAKshB,OAAOC,SAAW1gB,GjC4xFnB3B,YAAY,EACZD,cAAc,IiC1xFpBF,OAAAC,eAAIoiB,EAAA5hB,UAAA,UjC6xFEL,IiC7xFN,WACE,MAAOa,MAAKsT,MAAMkO,QjC+xFd/N,IiC7xFN,SAAW5S,GACTb,KAAKsT,MAAMkO,OAAS3gB,GjC+xFhB3B,YAAY,EACZD,cAAc,IiC7xFpBF,OAAAC,eAAcoiB,EAAA5hB,UAAA,ajCgyFRL,IiChyFN,WACE,MAAOa,MAAKsT,MAAMpP,cAAcqL,EAAA,EAAUhK,mBjCkyFtCrG,YAAY,EACZD,cAAc,IiChyFpBF,OAAAC,eAAcoiB,EAAA5hB,UAAA,UjCmyFRL,IiCnyFN,WACE,GAAMmiB,GAASthB,KAAKsT,MAAMpP,cAAcqL,EAAA,EAAUjK,cAClD,IAAc,MAAVgc,EACF,KAAM,IAAIla,OAAM,yCAAyCpH,KAAKpB,KAAI,IAEpE,OAAO0iB,IjCqyFHpiB,YAAY,EACZD,cAAc,IiCnyFpBmiB,EAAA5hB,UAAAiiB,2BAAA,SAA2BhI,EAAciI,GACvC1hB,KAAKshB,OAAO5O,iBAAiB+G,EAAMiI,IAGrCN,EAAA5hB,UAAAmiB,6BAAA,SAA6BlI,EAAciI,GACzC1hB,KAAKshB,OAAOM,oBAAoBnI,EAAMiI,IAE1CN,GAlCmCC,EAAA,IjC60F7B,SAAUhjB,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAOiiB,IAC9E,IAAIna,GAAsCzJ,EAAoB,GAC1DsR,EAA2CtR,EAAoB,GAC/DojB,EAA2CpjB,EAAoB,IkCn1FxF4jB,EAAA,SAAA7Y,GAAA,QAAA6Y,KlC01FQ,MAAkB,QAAX7Y,GAAmBA,EAAO1H,MAAMtB,KAAMiD,YAAcjD,KkCv0FnE,MAnBgC0H,GAAA,EAAAma,EAAA7Y,GAC9BjK,OAAAC,eAAc6iB,EAAAriB,UAAA,alC41FRL,IkC51FN,WACE,MAAOa,MAAKsT,MAAMpP,cAAcqL,EAAA,EAAUpK,gBlC81FtCjG,YAAY,EACZD,cAAc,IkC51FpB4iB,EAAAriB,UAAAsiB,MAAA,WACE,GAAMC,GAAU/hB,KAAKsT,MAAMpP,cAAcqL,EAAA,EAAUnK,YACnD,IAAe,MAAX2c,EACF,MAAOA,GAAQD,SAInBD,EAAAriB,UAAAiiB,2BAAA,SAA2BhI,EAAciI,GACvC1hB,KAAKsT,MAAMZ,iBAAiB+G,EAAMiI,IAGpCG,EAAAriB,UAAAmiB,6BAAA,SAA6BlI,EAAciI,GACzC1hB,KAAKsT,MAAMsO,oBAAoBnI,EAAMiI,IAEzCG,GAnBgCR,EAAA,IlCs3F1B,SAAUhjB,EAAQuB,EAAqB3B,GAE7C,YmC33FAA,GAAAU,EAAAiB,EAAA,qBAAAoiB,IAAA,IAAMC,IACJC,YAAa,uCACbC,gBAAiB,+BAGb1e,GACJ2e,SAAU,wBAGZJ,EAAA,WAwBE,QAAAA,GAAYtB,GAGV,GAFA1gB,KAAKqiB,SAAWpe,SAASC,cAAcwc,GAElB,MAAjB1gB,KAAKqiB,SACP,KAAM,IAAIjb,OAAM,oCAKlB,IAFApH,KAAKsiB,UAAYtiB,KAAKqiB,SAASne,cAAcT,EAAU2e,UAEjC,MAAlBpiB,KAAKsiB,UACP,KAAM,IAAIlb,OAAM,gDAGlBpH,MAAKkW,OAOT,MA3CEnX,QAAAC,eAAIgjB,EAAAxiB,UAAA,YnCu4FEL,ImCv4FN,WACE,MAAOa,MAAKqiB,SAASd,UnCy4FjB9N,ImCv4FN,SAAa5S,GACXb,KAAKqiB,SAASd,SAAW1gB,GnCy4FrB3B,YAAY,EACZD,cAAc,ImCv4FpBF,OAAAC,eAAIgjB,EAAAxiB,UAAA,YnC04FEL,ImC14FN,WACE,MAAOa,MAAKsiB,UAAUC,UAAUC,SAASP,EAAWE,kBnC44FhD1O,ImC14FN,SAAa5S,GACPA,GACFb,KAAKsiB,UAAUC,UAAU7V,OAAOuV,EAAWE,iBAC3CniB,KAAKsiB,UAAU9P,aAAa,cAAe,WAE3CxS,KAAKsiB,UAAUC,UAAU/b,IAAIyb,EAAWE,iBACxCniB,KAAKsiB,UAAU9P,aAAa,cAAe,UnC84FzCtT,YAAY,EACZD,cAAc,ImCx3FpB+iB,EAAAxiB,UAAA0W,KAAA,WACElW,KAAKyiB,UAAW,EAChBziB,KAAKqiB,SAASE,UAAU/b,IAAIyb,EAAWC,cAE3CF,MnCi4FM,SAAU3jB,EAAQuB,EAAqB3B,GAE7C,YoCx7FAA,GAAAU,EAAAiB,EAAA,qBAAA8iB,IAAA,IAAAA,GAAA,WAeE,QAAAA,GAA6BL,GAAAriB,KAAAqiB,WAa/B,MA3BEtjB,QAAAC,eAAI0jB,EAAAljB,UAAA,YpC87FEL,IoC97FN,WACE,MAAOa,MAAKqiB,SAASd,UpCg8FjB9N,IoC97FN,SAAa5S,GACXb,KAAKqiB,SAASd,SAAW1gB,GpCg8FrB3B,YAAY,EACZD,cAAc,IoC97FpBF,OAAAC,eAAI0jB,EAAAljB,UAAA,UpCi8FEL,IoCj8FN,WACE,MAAOa,MAAKqiB,SAASb,QpCm8FjB/N,IoCj8FN,SAAW5S,GACTb,KAAKqiB,SAASb,OAAS3gB,GpCm8FnB3B,YAAY,EACZD,cAAc,IoC/7FpByjB,EAAAljB,UAAAsiB,MAAA,WACE9hB,KAAKqiB,SAASP,SAGhBY,EAAAljB,UAAAiiB,2BAAA,SAA2BhI,EAAciI,GACvC1hB,KAAKqiB,SAAS3P,iBAAiB+G,EAAMiI,IAGvCgB,EAAAljB,UAAAmiB,6BAAA,SAA6BlI,EAAciI,GACzC1hB,KAAKqiB,SAAST,oBAAoBnI,EAAMiI,IAE5CgB,MpCs8FM,SAAUrkB,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO+iB,IAC9E,IAAIjb,GAAsCzJ,EAAoB,GAC1D2kB,EAAqE3kB,EAAoB,IAEzF4kB,GAD6E5kB,EAAoBmB,EAAEwjB,GAC1C3kB,EAAoB,KAE7E6kB,GADiE7kB,EAAoBmB,EAAEyjB,GAC3B5kB,EAAoB,KAEhF8kB,GADoE9kB,EAAoBmB,EAAE0jB,GAC5B7kB,EAAoB,KAElF+kB,GADsE/kB,EAAoBmB,EAAE2jB,GACvC9kB,EAAoB,KAEzEglB,GAD6DhlB,EAAoBmB,EAAE4jB,GACnC/kB,EAAoB,IAEpEilB,GADwDjlB,EAAoBmB,EAAE6jB,GACnChlB,EAAoB,IAC/DklB,EAAmDllB,EAAoB,GqCv+FhG0kB,EAAA,WAKE,QAAAA,GACmBxU,EACAiV,EACA9G,EACAE,EACAjL,EACA7G,EACApG,GANAtE,KAAAmO,KACAnO,KAAAojB,WACApjB,KAAAsc,gBACAtc,KAAAwc,gBACAxc,KAAAuR,KACAvR,KAAA0K,MACA1K,KAAAsE,QAXFtE,KAAAqjB,SAAW,MAEXrjB,KAAAsjB,QAAU,GAAIN,GAAA,iBAA8BrT,OAAQ,KAWnE3P,KAAKsc,cAAckF,QAAS,EAC5BxhB,KAAKwc,cAAcgF,QAAS,EAE5BxhB,KAAKujB,wBAA0BvjB,KAAKujB,wBAAwBrZ,KAAKlK,MACjEA,KAAKwjB,4BAA8BxjB,KAAKwjB,4BAA4BtZ,KAAKlK,MACzEA,KAAKyjB,sBAAwBzjB,KAAKyjB,sBAAsBvZ,KAAKlK,MAC7DA,KAAK8O,OAAS9O,KAAK8O,OAAO5E,KAAKlK,MAE/BijB,EAAA,WAAWS,iBAAiB1jB,KAAKyjB,uBAC9B7d,UAAU5F,KAAKsjB,SAElBL,EAAA,WAAWS,iBAAiB1jB,KAAKwjB,6BAC9BG,YAAY3jB,KAAKsjB,SACjBM,UAAU5jB,KAAK6jB,kBAAkBC,MAAO9jB,KAAKsE,SAC7Coa,OAAOiE,EAAkBoB,aACzBne,UAAU5F,KAAK8O,QAGlB9O,KAAKwc,cAAciF,2BAA2B,QAASzhB,KAAKujB,yBAqGhE,MAlGgBZ,GAAAnjB,UAAA+jB,wBAAd,WrC0+FM,MAAO7b,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAIuO,EACJ,OAAO7G,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,GqC7+FD,SAAMkhB,EAAA,EAAY5U,crC8+FtB,KAAK,GAED,MqCh/FdA,GAAc5G,EAAAnF,OAChBmgB,EAAkBoB,YAAYxV,IAChC,EAAMvO,KAAKkQ,OAAO3B,KADhB,IrCi/FY,KAAK,GqCh/FnB5G,EAAAnF,OrCk/FkBmF,EAAG1F,MAAQ,CACf,KAAK,GAAG,OAAQ,SqC/+F1B0gB,EAAAnjB,UAAAgkB,4BAAR,SAAoCQ,GAClChkB,KAAKsc,cAAcmF,2BAA2B,QAASuC,IAGjDrB,EAAAnjB,UAAAikB,sBAAR,SAA8BO,GAC5BhkB,KAAKmO,GAAG8V,MAAMre,UAAU,oBAAqBoe,IAGvCrB,EAAAnjB,UAAA0kB,SAAR,SAAiB/U,GACf,GAAMgV,GAAchV,EAASF,QAAQ9P,IAAI+jB,EAAA,EAAYtf,aACrDe,QAAO2G,SAASC,KAAO4Y,GAAe,KAGhCxB,EAAAnjB,UAAAyhB,YAAR,SAAoB/V,EAAckZ,OAAd,KAAAlZ,MAAA,IAClBlL,KAAKuR,GAAGK,MAAMqP,YAAY,GAAIrQ,OAAM5Q,KAAKqjB,SAAUnY,MACnDlL,KAAKuR,GAAGF,SAAS4P,YAAYmD,IAGjBzB,EAAAnjB,UAAAsP,OAAd,SAAqBP,GrCk/Ff,MAAO7G,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAImP,GAAU2B,EAAMjC,EAAa3D,CACjC,OAAOxD,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,GqCh/FF,MrCi/FC0F,GAAGvF,KAAKE,MAAM,EAAG,EAAG,CAAE,IqCr/FxCtC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EACjCziB,KAAKihB,eAEY,EAAMjhB,KAAKojB,SAAStU,OAAOoU,EAAA,EAASxG,SAAUnO,EAAY8V,crCs/F7D,KAAK,GAGD,MqCz/FZlV,GAAWxH,EAAAnF,OAEjBxC,KAAKkkB,SAAS/U,IrCu/FY,EAAa,EACzB,KAAK,GAqBD,MApBA2B,GAAOnJ,EAAGnF,OqCt/F5BxC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EAE7BziB,KAAKojB,SAAS1U,gBAAgBoC,IAChC9Q,KAAKihB,YAAYnQ,EAAG5F,QAAS4F,EAAGO,UAE5BP,EAAGf,OAASmT,EAAA,EAAUoB,sBACxBtkB,KAAKwc,cAAcgF,QAAS,EAC5BxhB,KAAKwc,cAAcsF,SAGjBhR,EAAGf,OAASmT,EAAA,EAAUqB,qBAAsC,MAAfzT,EAAG3B,WAC5CN,EAAciC,EAAG3B,SAASF,QAAQ9P,IAAI+jB,EAAA,EAAYvf,cACxD3D,KAAKojB,SAASxU,eAAeC,GAAe,OAI9C7O,KAAKihB,YAAY,iBACX/V,EAAwB,gBAAP4F,GAAkBA,EAAKA,EAAG5F,QACjDlL,KAAK0K,IAAItE,MAAM8E,GACflL,KAAK0K,IAAIO,UAAUC,KrCs/FK,EAAa,EACzB,KAAK,GAAG,OAAQ,SqCl/FpByX,EAAAnjB,UAAA0Q,OAAd,SAAqB3B,GrCw/Ff,MAAO7G,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAImP,GAAUqV,EAAMtZ,CACpB,OAAOxD,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,GqCt/FF,MrCu/FC0F,GAAGvF,KAAKE,MAAM,EAAG,EAAG,CAAE,IqC3/FxCtC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EACjCziB,KAAKihB,eAEY,EAAMjhB,KAAKojB,SAASlT,OAAOgT,EAAA,EAASxG,SAAUnO,EAAY8V,crC4/F7D,KAAK,GAGD,MqC//FZlV,GAAWxH,EAAAnF,OAEjBxC,KAAKkkB,SAAS/U,IrC6/FY,EAAa,EACzB,KAAK,GAaD,MAZAqV,GAAO7c,EAAGnF,OqC5/F5BxC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EAE7BziB,KAAKojB,SAAS1U,gBAAgB8V,GAChCxkB,KAAKihB,YAAYuD,EAAGtZ,QAASsZ,EAAGnT,WAGhCrR,KAAKihB,YAAY,iBACX/V,EAAwB,gBAAPsZ,GAAkBA,EAAKA,EAAGtZ,QACjDlL,KAAK0K,IAAItE,MAAM8E,GACflL,KAAK0K,IAAIO,UAAUC,KrC8/FK,EAAa,EACzB,KAAK,GAAG,OAAQ,SqC1/F1ByX,EAAAnjB,UAAAqkB,iBAAR,SAAyB5J,GAAzB,GAAAjT,GAAAhH,IACE,YADuB,KAAAia,UAChB,SAAC1L,GACN,MAAOoU,GAAkBoB,YAAYxV,GACnC9N,QAAQC,QAAQ6N,GAChB,GAAI9N,SAAqB,SAAAC,GAAW,MAAAsG,GAAKmH,GAAGsW,MAAM/jB,EAASuZ,OAIlD0I,EAAAoB,YAAf,SAA2Bpc,GACzB,MAAkB,cADQA,EAAAgI,QAG9BgT,MrCwgGM,SAAUtkB,EAAQD,EAASH,GAEjC,YsC3pGA,IAAAyW,GAAAzW,EAAA,GACAymB,EAAAzmB,EAAA,GACAyW,GAAA/O,WAAA+d,iBAAAgB,EAAAhB,kBtCkqGM,SAAUrlB,EAAQD,GuCrqGxB,GAAAmE,EAGAA,GAAA,WACA,MAAAvC,QAGA,KAEAuC,KAAAoiB,SAAA,qBAAAC,MAAA,QACC,MAAA5jB,GAED,gBAAA2D,UACApC,EAAAoC,QAOAtG,EAAAD,QAAAmE,GvC4qGM,SAAUlE,EAAQD,EAASH,GAEjC,YwC9rGA,SAAAsI,GAAAse,EAAAze,EAAAC,GACA,GAAAwe,EAAA,CACA,GAAAA,YAAAjR,GAAA7K,WACA,MAAA8b,EAEA,IAAAA,EAAA/b,EAAAQ,cACA,MAAAub,GAAA/b,EAAAQ,gBAGA,MAAAub,IAAAze,GAAAC,EAGA,GAAAuN,GAAA7K,WAAA8b,EAAAze,EAAAC,GAFA,GAAAuN,GAAA7K,WAAAF,EAAAO,OAbA,GAAAwK,GAAA3V,EAAA,GACA6K,EAAA7K,EAAA,IACA4K,EAAA5K,EAAA,GAeAG,GAAAmI,gBxCwsGM,SAAUlI,EAAQD,EAASH,GAEjC,YyC3tGAG,GAAA0O,QAAA/J,MAAA+J,SAAA,SAAAgF,GAAkD,MAAAA,IAAA,gBAAAA,GAAAzP,SzCkuG5C,SAAUhE,EAAQD,EAASH,GAEjC,Y0CluGA,SAAA6mB,KACA,IACA,MAAAC,GAAAzjB,MAAAtB,KAAAiD,WAEA,MAAAjC,GAEA,MADAqL,GAAAQ,YAAA7L,IACAqL,EAAAQ,aAGA,QAAAD,GAAArC,GAEA,MADAwa,GAAAxa,EACAua,EAbA,GACAC,GADA1Y,EAAApO,EAAA,GAeAG,GAAAwO,Y1C4uGM,SAAUvO,EAAQD,EAASH,GAEjC,Y2C7vGA,IAAA4B,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAMAkM,EAAA,SAAAjD,GAEA,QAAAiD,GAAAL,GACA5C,EAAAxK,KAAAwB,MACAA,KAAA4L,QACA,IAAA/E,GAAAO,MAAA5I,KAAAwB,KAAA4L,EACAA,EAAAvJ,OAAA,8CAAAuJ,EAAAiF,IAAA,SAAAhK,EAAAvI,GAA0G,MAAAA,GAAA,OAAAuI,EAAAqB,aAA4CmQ,KAAA,WACtJrY,MAAApB,KAAAiI,EAAAjI,KAAA,sBACAoB,KAAAqV,MAAAxO,EAAAwO,MACArV,KAAAkL,QAAArE,EAAAqE,QAEA,MAVArL,GAAAoM,EAAAjD,GAUAiD,GACC7E,MACDhJ,GAAA6N,uB3CowGM,SAAU5N,EAAQD,EAASH,GAEjC,Y4C5xGA,IAAA+mB,GAAA/mB,EAAA,GACAG,GAAAslB,iBAAAsB,EAAAC,2BAAA9kB,Q5CmyGM,SAAU9B,EAAQD,EAASH,GAEjC,Y6CtyGA,IAAA4B,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEA4I,EAAA1K,EAAA,IACAyW,EAAAzW,EAAA,GACA2K,EAAA3K,EAAA,GAMAgnB,EAAA,SAAAjc,GAEA,QAAAic,GAAAC,EAAAC,EAAAzE,GACA1X,EAAAxK,KAAAwB,MACAA,KAAAklB,aACAllB,KAAAmlB,gBACAnlB,KAAA0gB,WAyFA,MA9FA7gB,GAAAolB,EAAAjc,GAuDAic,EAAA9kB,OAAA,SAAA+kB,EAAAC,EAAAzE,GACA,UAAAuE,GAAAC,EAAAC,EAAAzE,IAEAuE,EAAAzlB,UAAAsG,WAAA,SAAAyB,GACA,GAAAP,GAAAhH,KACAmlB,EAAAnlB,KAAAmlB,cACAnB,EAAAhkB,KAAA0gB,SAAA,WAEA,OADA7V,MACAC,EAAA,EAA4BA,EAAA7H,UAAAZ,OAAuByI,IACnDD,EAAAC,EAAA,GAAA7H,UAAA6H,EAEA9D,GAAAoe,cAAA7d,EAAAsD,IACS,SAAA7J,GAAiBuG,EAAAxG,KAAAC,IAC1BqkB,EAAArlB,KAAAslB,gBAAAtB,EAAAzc,EACAoB,GAAAsB,WAAAkb,IAGA5d,EAAAf,IAAA,GAAAoC,GAAAkB,aAAA,WAEAqb,EAAAnB,EAAAqB,OAGAJ,EAAAzlB,UAAA4lB,cAAA,SAAA7d,EAAAsD,GACA,IACA,GAAA1J,GAAAnB,KAAA0gB,SAAApf,MAAAtB,KAAA6K,EACAtD,GAAAxG,KAAAI,GAEA,MAAAH,GACAuG,EAAAnB,MAAApF,KAGAikB,EAAAzlB,UAAA8lB,gBAAA,SAAAtB,EAAAuB,GACA,IACA,MAAAvlB,MAAAklB,WAAAlB,IAAA,KAEA,MAAAhjB,GACAukB,EAAAnf,MAAApF,KAGAikB,GACCvQ,EAAA/O,WACDvH,GAAA6mB,8B7C6yGM,SAAU5mB,EAAQD,EAASH,GAEjC,Y8C75GA,IAAAyW,GAAAzW,EAAA,GACAunB,EAAAvnB,EAAA,GACAyW,GAAA/O,WAAAnG,UAAAkf,OAAA8G,EAAA9G,Q9Co6GM,SAAUrgB,EAAQD,EAASH,GAEjC,Y+C13GA,SAAAygB,GAAA+G,EAAAplB,GACA,MAAAL,MAAA+F,KAAA,GAAA2f,GAAAD,EAAAplB,IA/CA,GAAAR,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEA6T,EAAA3V,EAAA,EA4CAG,GAAAsgB,QACA,IAAAgH,GAAA,WACA,QAAAA,GAAAD,EAAAplB,GACAL,KAAAylB,YACAzlB,KAAAK,UAKA,MAHAqlB,GAAAlmB,UAAAhB,KAAA,SAAA+I,EAAArB,GACA,MAAAA,GAAAN,UAAA,GAAA+f,GAAApe,EAAAvH,KAAAylB,UAAAzlB,KAAAK,WAEAqlB,KAOAC,EAAA,SAAA3c,GAEA,QAAA2c,GAAAxc,EAAAsc,EAAAplB,GACA2I,EAAAxK,KAAAwB,KAAAmJ,GACAnJ,KAAAylB,YACAzlB,KAAAK,UACAL,KAAA4lB,MAAA,EAiBA,MAtBA/lB,GAAA8lB,EAAA3c,GASA2c,EAAAnmB,UAAA+J,MAAA,SAAA1I,GACA,GAAAM,EACA,KACAA,EAAAnB,KAAAylB,UAAAjnB,KAAAwB,KAAAK,QAAAQ,EAAAb,KAAA4lB,SAEA,MAAA/e,GAEA,WADA7G,MAAAmJ,YAAA/C,MAAAS,GAGA1F,GACAnB,KAAAmJ,YAAApI,KAAAF,IAGA8kB,GACC/R,EAAA7K,a/C+6GK,SAAU1K,EAAQD,EAASH,GAEjC,YgD1gHA,IAAAyW,GAAAzW,EAAA,GACA4nB,EAAA5nB,EAAA,GACAyW,GAAA/O,WAAAnG,UAAAokB,UAAAiC,EAAAjC,WhDihHM,SAAUvlB,EAAQD,EAASH,GAEjC,YiD99GA,SAAA2lB,GAAAkC,EAAAC,GACA,MAAA/lB,MAAA+F,KAAA,GAAAigB,GAAAF,EAAAC,IAxDA,GAAAlmB,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEAkmB,EAAAhoB,EAAA,IACAioB,EAAAjoB,EAAA,GAoDAG,GAAAwlB,WACA,IAAAoC,GAAA,WACA,QAAAA,GAAAF,EAAAC,GACA/lB,KAAA8lB,UACA9lB,KAAA+lB,iBAKA,MAHAC,GAAAxmB,UAAAhB,KAAA,SAAA+I,EAAArB,GACA,MAAAA,GAAAN,UAAA,GAAAugB,GAAA5e,EAAAvH,KAAA8lB,QAAA9lB,KAAA+lB,kBAEAC,KAOAG,EAAA,SAAAnd,GAEA,QAAAmd,GAAAhd,EAAA2c,EAAAC,GACA/c,EAAAxK,KAAAwB,KAAAmJ,GACAnJ,KAAA8lB,UACA9lB,KAAA+lB,iBACA/lB,KAAAwM,MAAA,EAwDA,MA7DA3M,GAAAsmB,EAAAnd,GAOAmd,EAAA3mB,UAAA+J,MAAA,SAAA1I,GACA,GAAAM,GACAqL,EAAAxM,KAAAwM,OACA,KACArL,EAAAnB,KAAA8lB,QAAAjlB,EAAA2L,GAEA,MAAApG,GAEA,WADApG,MAAAmJ,YAAA/C,SAGApG,KAAAomB,UAAAjlB,EAAAN,EAAA2L,IAEA2Z,EAAA3mB,UAAA4mB,UAAA,SAAAjlB,EAAAN,EAAA2L,GACA,GAAA6Z,GAAArmB,KAAAqmB,iBACAA,IACAA,EAAA/e,cAEAtH,KAAAwG,IAAAxG,KAAAqmB,kBAAAH,EAAA5R,kBAAAtU,KAAAmB,EAAAN,EAAA2L,KAEA2Z,EAAA3mB,UAAAiK,UAAA,WACA,GAAA4c,GAAArmB,KAAAqmB,iBACAA,OAAA3c,QACAV,EAAAxJ,UAAAiK,UAAAjL,KAAAwB,OAGAmmB,EAAA3mB,UAAAiL,aAAA,WACAzK,KAAAqmB,kBAAA,MAEAF,EAAA3mB,UAAA6U,eAAA,SAAAF,GACAnU,KAAA0M,OAAAyH,GACAnU,KAAAqmB,kBAAA,KACArmB,KAAAkJ,WACAF,EAAAxJ,UAAAiK,UAAAjL,KAAAwB,OAGAmmB,EAAA3mB,UAAAsU,WAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACAnU,KAAA+lB,eACA/lB,KAAAsmB,eAAAvS,EAAAC,EAAAC,EAAAC,GAGAlU,KAAAmJ,YAAApI,KAAAiT,IAGAmS,EAAA3mB,UAAA8mB,eAAA,SAAAvS,EAAAC,EAAAC,EAAAC,GACA,GAAA/S,EACA,KACAA,EAAAnB,KAAA+lB,eAAAhS,EAAAC,EAAAC,EAAAC,GAEA,MAAArN,GAEA,WADA7G,MAAAmJ,YAAA/C,MAAAS,GAGA7G,KAAAmJ,YAAApI,KAAAI,IAEAglB,GACCF,EAAApS,kBjD4hHK,SAAUxV,EAAQD,EAASH,GAEjC,YkDvqHAG,GAAAwW,YAAA,SAAA9C,GAAqC,MAAAA,IAAA,gBAAAA,GAAAzP,SlD8qH/B,SAAUhE,EAAQD,EAASH,GAEjC,YmDhrHA,SAAA6W,GAAAjU,GACA,MAAAA,IAAA,kBAAAA,GAAA+E,WAAA,kBAAA/E,GAAAQ,KAEAjD,EAAA0W,anDurHM,SAAUzW,EAAQD,EAASH,GAEjC,YoD3rHA,SAAAsoB,GAAAtf,GACA,GAAAvE,GAAAuE,EAAAvE,MACA,sBAAAA,GAIA,MAHAA,GAAAC,WACAD,EAAAC,SAAAD,EAAA,sBAEAA,EAAAC,QAIA,IAAA6jB,GAAAvf,EAAAwf,GACA,IAAAD,GAAA,sBAAAA,IAAA,cACA,kBAEA,IAAAE,GAAAzf,EAAA2J,GAEA,IAAA8V,EAEA,OADAtL,GAAArc,OAAAoY,oBAAAuP,EAAAlnB,WACAlB,EAAA,EAA2BA,EAAA8c,EAAA/Y,SAAiB/D,EAAA,CAC5C,GAAA2J,GAAAmT,EAAA9c,EAEA,gBAAA2J,GAAA,SAAAA,GAAAye,EAAAlnB,UAAAyI,KAAAye,EAAAlnB,UAAA,QACA,MAAAyI,GAIA,mBA3BA,GAAAzC,GAAAvH,EAAA,EA8BAG,GAAAmoB,yBACAnoB,EAAAuE,SAAA4jB,EAAA/gB,EAAAyB,MAIA7I,EAAAuoB,WAAAvoB,EAAAuE,UpDmsHM,SAAUtE,EAAQD,EAASH,GAEjC,YqDxuHA,IAAA4B,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEA6T,EAAA3V,EAAA,GAMAwW,EAAA,SAAAzL,GAEA,QAAAyL,GAAAjK,EAAAuJ,EAAAE,GACAjL,EAAAxK,KAAAwB,MACAA,KAAAwK,SACAxK,KAAA+T,aACA/T,KAAAiU,aACAjU,KAAAwM,MAAA,EAaA,MAnBA3M,GAAA4U,EAAAzL,GAQAyL,EAAAjV,UAAA+J,MAAA,SAAA1I,GACAb,KAAAwK,OAAAsJ,WAAA9T,KAAA+T,WAAAlT,EAAAb,KAAAiU,WAAAjU,KAAAwM,QAAAxM,OAEAyU,EAAAjV,UAAAgK,OAAA,SAAApD,GACApG,KAAAwK,OAAA4J,YAAAhO,EAAApG,MACAA,KAAAsH,eAEAmN,EAAAjV,UAAAiK,UAAA,WACAzJ,KAAAwK,OAAA6J,eAAArU,MACAA,KAAAsH,eAEAmN,GACCb,EAAA7K,WACD3K,GAAAqW,mBrD+uHM,SAAUpW,EAAQD,EAASH,GAEjC,YsDlxHA,IAAAyW,GAAAzW,EAAA,GACA2oB,EAAA3oB,EAAA,GACAyW,GAAA/O,WAAAnG,UAAAmkB,YAAAiD,EAAAjD,atDyxHM,SAAUtlB,EAAQD,EAASH,GAEjC,YuD3uHA,SAAA0lB,GAAAkD,EAAAd,GACA,MAAA/lB,MAAA+F,KAAA,GAAA+gB,GAAAD,EAAAd,IAnDA,GAAAlmB,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEAkmB,EAAAhoB,EAAA,IACAioB,EAAAjoB,EAAA,GA+CAG,GAAAulB,aACA,IAAAmD,GAAA,WACA,QAAAA,GAAA7gB,EAAA8f,GACA/lB,KAAAiG,aACAjG,KAAA+lB,iBAKA,MAHAe,GAAAtnB,UAAAhB,KAAA,SAAA+I,EAAArB,GACA,MAAAA,GAAAN,UAAA,GAAAmhB,GAAAxf,EAAAvH,KAAAiG,WAAAjG,KAAA+lB,kBAEAe,KAOAC,EAAA,SAAA/d,GAEA,QAAA+d,GAAA5d,EAAA6d,EAAAjB,GACA/c,EAAAxK,KAAAwB,KAAAmJ,GACAnJ,KAAAgnB,QACAhnB,KAAA+lB,iBACA/lB,KAAAwM,MAAA,EA8CA,MAnDA3M,GAAAknB,EAAA/d,GAOA+d,EAAAvnB,UAAA+J,MAAA,SAAA1I,GACA,GAAAwlB,GAAArmB,KAAAqmB,iBACAA,IACAA,EAAA/e,cAEAtH,KAAAwG,IAAAxG,KAAAqmB,kBAAAH,EAAA5R,kBAAAtU,UAAAgnB,MAAAnmB,EAAAb,KAAAwM,WAEAua,EAAAvnB,UAAAiK,UAAA,WACA,GAAA4c,GAAArmB,KAAAqmB,iBACAA,OAAA3c,QACAV,EAAAxJ,UAAAiK,UAAAjL,KAAAwB,OAGA+mB,EAAAvnB,UAAAiL,aAAA,WACAzK,KAAAqmB,kBAAA,MAEAU,EAAAvnB,UAAA6U,eAAA,SAAAF,GACAnU,KAAA0M,OAAAyH,GACAnU,KAAAqmB,kBAAA,KACArmB,KAAAkJ,WACAF,EAAAxJ,UAAAiK,UAAAjL,KAAAwB,OAGA+mB,EAAAvnB,UAAAsU,WAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAAxM,GAAA3H,KAAA+lB,EAAApe,EAAAoe,eAAA5c,EAAAxB,EAAAwB,WACA4c,GACA/lB,KAAAinB,kBAAAlT,EAAAC,EAAAC,EAAAC,GAGA/K,EAAApI,KAAAiT,IAGA+S,EAAAvnB,UAAAynB,kBAAA,SAAAlT,EAAAC,EAAAC,EAAAC,GACA,GACA/S,GADAwG,EAAA3H,KAAA+lB,EAAApe,EAAAoe,eAAA5c,EAAAxB,EAAAwB,WAEA,KACAhI,EAAA4kB,EAAAhS,EAAAC,EAAAC,EAAAC,GAEA,MAAArN,GAEA,WADAsC,GAAA/C,MAAAS,GAGAsC,EAAApI,KAAAI,IAEA4lB,GACCd,EAAApS,kBvDoyHK,SAAUxV,EAAQD,EAASH,GAEjC,YwDh6HA,IAAA4B,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEAmnB,EAAAjpB,EAAA,IACAkpB,EAAAlpB,EAAA,IAIAmpB,EAAA,SAAApe,GAEA,QAAAoe,GAAAC,GACAre,EAAAxK,KAAAwB,MACAA,KAAAqnB,SA8BA,MAjCAxnB,GAAAunB,EAAApe,GAKAjK,OAAAC,eAAAooB,EAAA5nB,UAAA,SACAL,IAAA,WACA,MAAAa,MAAAsnB,YAEApoB,YAAA,EACAD,cAAA,IAEAmoB,EAAA5nB,UAAAsG,WAAA,SAAAyB,GACA,GAAAF,GAAA2B,EAAAxJ,UAAAsG,WAAAtH,KAAAwB,KAAAuH,EAIA,OAHAF,OAAAqC,QACAnC,EAAAxG,KAAAf,KAAAqnB,QAEAhgB,GAEA+f,EAAA5nB,UAAA8nB,SAAA,WACA,GAAAtnB,KAAAunB,SACA,KAAAvnB,MAAAwnB,WAEA,IAAAxnB,KAAA0J,OACA,SAAAyd,GAAA/R,uBAGA,OAAApV,MAAAqnB,QAGAD,EAAA5nB,UAAAuB,KAAA,SAAAF,GACAmI,EAAAxJ,UAAAuB,KAAAvC,KAAAwB,UAAAqnB,OAAAxmB,IAEAumB,GACCF,EAAAO,QACDrpB,GAAAgpB,mBxDu6HM,SAAU/oB,EAAQD,EAASH,GAEjC,YyDv9HA,IAAA4B,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEA2U,EAAAzW,EAAA,GACA2V,EAAA3V,EAAA,GACA2K,EAAA3K,EAAA,GACAkpB,EAAAlpB,EAAA,IACAypB,EAAAzpB,EAAA,IACA6K,EAAA7K,EAAA,IAIA0pB,EAAA,SAAA3e,GAEA,QAAA2e,GAAAxe,GACAH,EAAAxK,KAAAwB,KAAAmJ,GACAnJ,KAAAmJ,cAEA,MALAtJ,GAAA8nB,EAAA3e,GAKA2e,GACC/T,EAAA7K,WACD3K,GAAAupB,mBAIA,IAAAF,GAAA,SAAAze,GAEA,QAAAye,KACAze,EAAAxK,KAAAwB,MACAA,KAAA4nB,aACA5nB,KAAA0J,QAAA,EACA1J,KAAAkJ,WAAA,EACAlJ,KAAAunB,UAAA,EACAvnB,KAAAwnB,YAAA,KAyFA,MAhGA3nB,GAAA4nB,EAAAze,GASAye,EAAAjoB,UAAAsJ,EAAAQ,cAAA,WACA,UAAAqe,GAAA3nB,OAEAynB,EAAAjoB,UAAAuG,KAAA,SAAAC,GACA,GAAA6hB,GAAA,GAAAC,GAAA9nB,UAEA,OADA6nB,GAAA7hB,WACA6hB,GAEAJ,EAAAjoB,UAAAuB,KAAA,SAAAF,GACA,GAAAb,KAAA0J,OACA,SAAAyd,GAAA/R,uBAEA,KAAApV,KAAAkJ,UAIA,OAHA0e,GAAA5nB,KAAA4nB,UACAnb,EAAAmb,EAAAvlB,OACA0lB,EAAAH,EAAAxV,QACA9T,EAAA,EAA2BA,EAAAmO,EAASnO,IACpCypB,EAAAzpB,GAAAyC,KAAAF,IAIA4mB,EAAAjoB,UAAA4G,MAAA,SAAAS,GACA,GAAA7G,KAAA0J,OACA,SAAAyd,GAAA/R,uBAEApV,MAAAunB,UAAA,EACAvnB,KAAAwnB,YAAA3gB,EACA7G,KAAAkJ,WAAA,CAIA,QAHA0e,GAAA5nB,KAAA4nB,UACAnb,EAAAmb,EAAAvlB,OACA0lB,EAAAH,EAAAxV,QACA9T,EAAA,EAAuBA,EAAAmO,EAASnO,IAChCypB,EAAAzpB,GAAA8H,MAAAS,EAEA7G,MAAA4nB,UAAAvlB,OAAA,GAEAolB,EAAAjoB,UAAA6G,SAAA,WACA,GAAArG,KAAA0J,OACA,SAAAyd,GAAA/R,uBAEApV,MAAAkJ,WAAA,CAIA,QAHA0e,GAAA5nB,KAAA4nB,UACAnb,EAAAmb,EAAAvlB,OACA0lB,EAAAH,EAAAxV,QACA9T,EAAA,EAAuBA,EAAAmO,EAASnO,IAChCypB,EAAAzpB,GAAA+H,UAEArG,MAAA4nB,UAAAvlB,OAAA,GAEAolB,EAAAjoB,UAAA8H,YAAA,WACAtH,KAAAkJ,WAAA,EACAlJ,KAAA0J,QAAA,EACA1J,KAAA4nB,UAAA,MAEAH,EAAAjoB,UAAAiH,cAAA,SAAAc,GACA,GAAAvH,KAAA0J,OACA,SAAAyd,GAAA/R,uBAGA,OAAApM,GAAAxJ,UAAAiH,cAAAjI,KAAAwB,KAAAuH,IAGAkgB,EAAAjoB,UAAAsG,WAAA,SAAAyB,GACA,GAAAvH,KAAA0J,OACA,SAAAyd,GAAA/R,uBAEA,OAAApV,MAAAunB,UACAhgB,EAAAnB,MAAApG,KAAAwnB,aACA5e,EAAAkB,aAAAoD,OAEAlN,KAAAkJ,WACA3B,EAAAlB,WACAuC,EAAAkB,aAAAoD,QAGAlN,KAAA4nB,UAAAtlB,KAAAiF,GACA,GAAAmgB,GAAAM,oBAAAhoB,KAAAuH,KAGAkgB,EAAAjoB,UAAAyoB,aAAA,WACA,GAAAhiB,GAAA,GAAAyO,GAAA/O,UAEA,OADAM,GAAAC,OAAAlG,KACAiG,GAEAwhB,EAAAtnB,OAAA,SAAAgJ,EAAAjD,GACA,UAAA4hB,GAAA3e,EAAAjD,IAEAuhB,GACC/S,EAAA/O,WACDvH,GAAAqpB,SAIA,IAAAK,GAAA,SAAA9e,GAEA,QAAA8e,GAAA3e,EAAAjD,GACA8C,EAAAxK,KAAAwB,MACAA,KAAAmJ,cACAnJ,KAAAkG,SA6BA,MAjCArG,GAAAioB,EAAA9e,GAMA8e,EAAAtoB,UAAAuB,KAAA,SAAAF,GACA,GAAAsI,GAAAnJ,KAAAmJ,WACAA,MAAApI,MACAoI,EAAApI,KAAAF,IAGAinB,EAAAtoB,UAAA4G,MAAA,SAAAS,GACA,GAAAsC,GAAAnJ,KAAAmJ,WACAA,MAAA/C,OACApG,KAAAmJ,YAAA/C,MAAAS,IAGAihB,EAAAtoB,UAAA6G,SAAA,WACA,GAAA8C,GAAAnJ,KAAAmJ,WACAA,MAAA9C,UACArG,KAAAmJ,YAAA9C,YAGAyhB,EAAAtoB,UAAAsG,WAAA,SAAAyB,GAEA,MADAvH,MAAAkG,OAEAlG,KAAAkG,OAAAN,UAAA2B,GAGAqB,EAAAkB,aAAAoD,OAGA4a,GACCL,EACDrpB,GAAA0pB,oBzD89HM,SAAUzpB,EAAQD,EAASH,GAEjC,Y0DroIA,IAAA4B,GAAAG,WAAAH,WAAA,SAAAlB,EAAAmB,GAEA,QAAAC,KAAmBC,KAAAC,YAAAtB,EADnB,OAAAe,KAAAI,KAAAL,eAAAC,KAAAf,EAAAe,GAAAI,EAAAJ,GAEAf,GAAAa,UAAA,OAAAM,EAAAf,OAAAoB,OAAAL,IAAAC,EAAAP,UAAAM,EAAAN,UAAA,GAAAO,KAEA6I,EAAA3K,EAAA,GAMA+pB,EAAA,SAAAhf,GAEA,QAAAgf,GAAAH,EAAAtgB,GACAyB,EAAAxK,KAAAwB,MACAA,KAAA6nB,UACA7nB,KAAAuH,aACAvH,KAAA0J,QAAA,EAkBA,MAvBA7J,GAAAmoB,EAAAhf,GAOAgf,EAAAxoB,UAAA8H,YAAA,WACA,IAAAtH,KAAA0J,OAAA,CAGA1J,KAAA0J,QAAA,CACA,IAAAme,GAAA7nB,KAAA6nB,QACAD,EAAAC,EAAAD,SAEA,IADA5nB,KAAA6nB,QAAA,KACAD,GAAA,IAAAA,EAAAvlB,SAAAwlB,EAAA3e,YAAA2e,EAAAne,OAAA,CAGA,GAAAwe,GAAAN,EAAAra,QAAAvN,KAAAuH,aACA,IAAA2gB,GACAN,EAAApa,OAAA0a,EAAA,MAGAF,GACCpf,EAAAkB,aACD1L,GAAA4pB,uB1D4oIM,SAAU3pB,EAAQuB,EAAqB3B,GAE7C,Y2D5qIM,SAAAiY,K3D+rIF,MAAOxO,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAIsc,GAAeC,EAASC,EAAerG,EAAYrF,EAAM5F,CAC7D,OAAOxD,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,G2D/rIjB,G3DgsIgB0F,EAAGvF,KAAKE,MAAM,EAAG,EAAG,CAAE,I2DhsIjB,OAFfga,EAAgBG,EAAA,EAAGpL,SAASlS,IAAIoQ,EAAA,EAAS4Y,SAG7C,KAAM,IAAI/gB,OAAM,6BAA6BmI,EAAA,EAAS4Y,OAAM,KAK9D,IAAe,OAFT5L,EAAUD,EAAcK,EAAEzY,cAAc,2BAG5C,KAAM,IAAIkD,OAAM,4BAMlB,OAHMoV,GAAgB,GAAIC,GAAA,EAAcF,IAGxC,EAAM6L,EAAA,EAAU3S,KAAK,gB3D+rIT,KAAK,G2D5rII,MAHrB9N,GAAAnF,QAGqB,EAAM4lB,EAAA,EAAUrS,UACnCsS,UAAW9Y,EAAA,EAAanL,UACxBkkB,qBAAqB,EACrBxE,MAAOvU,EAAA,EAAajL,Q3DisIV,KAAK,G2D9rIjB,MANO6R,GAAcxO,EAAAnF,OAInB2T,YAEF,EAAO,GAAIoS,GAAA,EAAgBpS,EAAY6G,EAAUV,EAAeE,EAAeC,EAAA,EAAIQ,EAAA,G3DisIvE,KAAK,G2D3rIjB,K3D4rIgBnM,GAAOnJ,EAAGnF,O2D/rIpB0I,EAAUnM,OAAAme,EAAA,GAAmBpM,GACnCmM,EAAA,EAAIjS,KAAKE,GACT+R,EAAA,EAAIhS,UAAUC,GACR,GAAI9D,OAAM8D,E3DisIJ,KAAK,GAAG,OAAQ,QApDCtL,EAAuB,EAAIsW,CACvC,IAAIxO,GAAsCzJ,EAAoB,GAC1DsR,EAA2CtR,EAAoB,GAC/DmqB,EAAiDnqB,EAAoB,IACrE+e,EAAgD/e,EAAoB,GACpEgf,EAA4Chf,EAAoB,GAChEwe,EAA2Cxe,EAAoB,IAC/Dif,EAA6Cjf,EAAoB,GACjEsqB,EAAkDtqB,EAAoB,KAqDzF,SAAUI,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO4oB,IAC9E,IAAI9gB,GAAsCzJ,EAAoB,GAC1DsR,EAA2CtR,EAAoB,G4DjvIxFuqB,EAAA,WAGE,QAAAA,GACmBrS,EACAiN,EACA9G,EACAE,EACAjL,EACA7G,GALA1K,KAAAmW,aACAnW,KAAAojB,WACApjB,KAAAsc,gBACAtc,KAAAwc,gBACAxc,KAAAuR,KACAvR,KAAA0K,MARF1K,KAAAqjB,SAAW,MAU1BrjB,KAAKsc,cAAckF,QAAS,EAC5BxhB,KAAKwc,cAAcgF,QAAS,EAGxBxhB,KAAKmW,WAAWsS,WAAWtpB,QAC7Ba,KAAK0K,IAAIM,KAAK,gDACdhL,KAAKmW,WAAWuS,WAGlB1oB,KAAK2oB,wBAA0B3oB,KAAK2oB,wBAAwBze,KAAKlK,MACjEA,KAAKujB,wBAA0BvjB,KAAKujB,wBAAwBrZ,KAAKlK,MAGjEA,KAAKsc,cAAcmF,2BAA2B,QAASzhB,KAAK2oB,yBAG5D3oB,KAAKwc,cAAciF,2BAA2B,QAASzhB,KAAKujB,yBA8FhE,MA3FgBiF,GAAAhpB,UAAAmpB,wBAAd,W5D8uIM,MAAOjhB,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,MAAO0H,GAAyD,EAAE1H,KAAM,SAAU2H,GAE9E,M4DhvIZ3H,MAAKmW,WAAWrH,SAASzN,KAAKrB,KAAK8O,OAAO5E,KAAKlK,MAAOA,KAAK4oB,uBAAuB1e,KAAKlK,Q5DgvInE,Q4D7uIRwoB,EAAAhpB,UAAA+jB,wBAAd,W5DkvIM,MAAO7b,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,MAAO0H,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,GACD,M4DrvIhBjC,MAAKmW,WAAWsS,WAAWtpB,OAC7B,EAAMa,KAAKkQ,OAAOlQ,KAAKmW,WAAW0S,YAAY1pB,SAD5C,I5DuvIY,KAAK,G4DtvInBwI,EAAAnF,O5DwvIkBmF,EAAG1F,MAAQ,CACf,KAAK,GAAG,OAAQ,S4DrvI1BumB,EAAAhpB,UAAAopB,uBAAR,SAA+BzZ,GACb,MAAZA,GAAwC,gBAAbA,IAIR,6BAAnBA,EAAS/I,OACXpG,KAAKihB,gBAAYtQ,GAAW,GAAIC,OAAM,SAAU,gCAI5C4X,EAAAhpB,UAAA0kB,SAAR,SAAiB/U,GACf,GAAMgV,GAAchV,EAASF,QAAQ9P,IAAIoQ,EAAA,EAAY3L,aACrDe,QAAO2G,SAASC,KAAO4Y,GAAe,KAGhCqE,EAAAhpB,UAAAyhB,YAAR,SAAoB/V,EAAckZ,OAAd,KAAAlZ,MAAA,IAClBlL,KAAKuR,GAAGK,MAAMqP,YAAY,GAAIrQ,OAAM5Q,KAAKqjB,SAAUnY,MACnDlL,KAAKuR,GAAGF,SAAS4P,YAAYmD,IAGjBoE,EAAAhpB,UAAAsP,OAAd,SAAqBga,G5DwvIf,MAAOphB,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAImP,GAAU2B,EAAM5F,CACpB,OAAOxD,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,G4DtvIF,M5DuvIC0F,GAAGvF,KAAKE,MAAM,EAAG,EAAG,CAAE,I4D3vIxCtC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EACjCziB,KAAKihB,eAEY,EAAMjhB,KAAKojB,SAAStU,OAAOS,EAAA,EAAS4Y,QACnDY,QAASD,EAAWE,kBAAkBC,W5D6vI1B,KAAK,GAID,M4DlwIZ9Z,GAAWxH,EAAAnF,OAIjBxC,KAAKmW,WAAWuS,UAChB1oB,KAAKkkB,SAAS/U,I5D6vIY,EAAa,EACzB,KAAK,GAiBD,MAhBA2B,GAAOnJ,EAAGnF,O4D5vI5BxC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EAE7BziB,KAAKojB,SAAS1U,gBAAgBoC,IAChC9Q,KAAKihB,YAAYnQ,EAAG5F,QAAS4F,EAAGO,UAE5BP,EAAGf,OAASR,EAAA,EAAU+U,sBACxBtkB,KAAKwc,cAAcgF,QAAS,EAC5BxhB,KAAKwc,cAAcsF,WAIrB9hB,KAAKihB,YAAY,iBACX/V,EAAwB,gBAAP4F,GAAkBA,EAAKA,EAAG5F,QACjDlL,KAAK0K,IAAItE,MAAM8E,GACflL,KAAK0K,IAAIO,UAAUC,K5D6vIK,EAAa,EACzB,KAAK,GAAG,OAAQ,S4DzvIpBsd,EAAAhpB,UAAA0Q,OAAd,SAAqB4Y,G5D+vIf,MAAOphB,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAImP,GAAUqV,EAAMtZ,CACpB,OAAOxD,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,G4D7vIF,M5D8vIC0F,GAAGvF,KAAKE,MAAM,EAAG,EAAG,CAAE,I4DlwIxCtC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EACjCziB,KAAKihB,eAEY,EAAMjhB,KAAKojB,SAASlT,OAAOX,EAAA,EAAS4Y,QACnDY,QAASD,EAAWE,kBAAkBC,W5DowI1B,KAAK,GAGD,M4DxwIZ9Z,GAAWxH,EAAAnF,OAIjBxC,KAAKkkB,SAAS/U,I5DowIY,EAAa,EACzB,KAAK,GAaD,MAZAqV,GAAO7c,EAAGnF,O4DnwI5BxC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EAE7BziB,KAAKojB,SAAS1U,gBAAgB8V,GAChCxkB,KAAKihB,YAAYuD,EAAGtZ,QAASsZ,EAAGnT,WAGhCrR,KAAKihB,YAAY,iBACX/V,EAAwB,gBAAPsZ,GAAkBA,EAAKA,EAAGtZ,QACjDlL,KAAK0K,IAAItE,MAAM8E,GACflL,KAAK0K,IAAIO,UAAUC,K5DqwIK,EAAa,EACzB,KAAK,GAAG,OAAQ,S4DlwIpCsd,M5D8wIM,SAAUnqB,EAAQuB,EAAqB3B,GAE7C,Y6Dz4IM,SAAAiY,K7Dw5IF,MAAOxO,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAIkpB,GAAYhe,CAChB,OAAOxD,GAAyD,EAAE1H,KAAM,SAAU2H,G6Dz5IxF,IAGE,GAAkB,OAFZuhB,EAAaC,EAAA,EAAGvX,MAAMzS,IAAIiqB,EAAA,EAAc/F,WAG5C,KAAM,IAAIjc,OAAM,0BAA0BgiB,EAAA,EAAc/F,SAAQ,KAGlE,QAAM,EAAC,GAAI+F,GAAA,EAAcC,EAAUH,EAAYC,EAAA,EAAIG,EAAA,EAAK/Z,EAAA,EAAY3L,eAEpE,MAAOiE,GAIP,KAHMqD,GAAwB,gBAAPrD,GAAkBA,EAAKA,EAAGqD,QACjDoe,EAAA,EAAIte,KAAKE,GACToe,EAAA,EAAIre,UAAUC,GACR,GAAI9D,OAAM8D,G7D05IR,OAAQ,OA9BatL,EAAuB,EAAIsW,CACvC,IAAIxO,GAAsCzJ,EAAoB,GAC1DsR,EAA2CtR,EAAoB,GAC/DorB,EAAgDprB,EAAoB,GACpEqrB,EAA4CrrB,EAAoB,GAChEkrB,EAA2ClrB,EAAoB,IAC/DmrB,EAAgDnrB,EAAoB,KAgCvF,SAAUI,EAAQuB,EAAqB3B,GAE7C,YAC+BA,GAAoBU,EAAEiB,EAAqB,IAAK,WAAa,MAAO2pB,IAC9E,IAAI7hB,GAAsCzJ,EAAoB,GAC1DsR,EAA2CtR,EAAoB,G8D/6IxFsrB,EAAA,WAGE,QAAAA,GACmBnG,EACA8F,EACA3X,EACA7G,EACA9G,GAJA5D,KAAAojB,WACApjB,KAAAkpB,aACAlpB,KAAAuR,KACAvR,KAAA0K,MACA1K,KAAA4D,eAEjB5D,KAAK2oB,wBAA0B3oB,KAAK2oB,wBAAwBze,KAAKlK,MAEjEA,KAAKkpB,WAAWzH,2BAA2B,SAAUzhB,KAAK2oB,yBAyE9D,MAtEgBY,GAAA/pB,UAAAmpB,wBAAd,SAAsCa,G9D86IhC,MAAO9hB,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAIgP,EACJ,OAAOtH,GAAyD,EAAE1H,KAAM,SAAU2H,GAI9E,M8Dn7IZ6hB,GAAIC,iBAEEza,EAAOhP,KAAK0pB,qBAClB1pB,KAAK8O,OAAOE,I9Dg7IQ,Q8D76Idua,EAAA/pB,UAAA0kB,SAAR,SAAiB/U,GACf,GAAMgV,GAAchV,EAASF,QAAQ9P,IAAIa,KAAK4D,aAC9Ce,QAAO2G,SAASC,KAAO4Y,GAAe,KAGhCoF,EAAA/pB,UAAAyhB,YAAR,SAAoB/V,EAAckZ,OAAd,KAAAlZ,MAAA,IAClBlL,KAAKuR,GAAGK,MAAMqP,YAAY,GAAIrQ,OAAM2Y,EAAclG,SAAUnY,MAC5DlL,KAAKuR,GAAGF,SAAS4P,YAAYmD,IAGjBmF,EAAA/pB,UAAAsP,OAAd,SAAqBE,G9Di7If,MAAOtH,GAAuD,EAAE1H,SAAM,OAAQ,GAAQ,WAClF,GAAImP,GAAU2B,EAAM5F,CACpB,OAAOxD,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,G8D/6IF,M9Dg7IC0F,GAAGvF,KAAKE,MAAM,EAAG,EAAG,CAAE,I8Dp7IxCtC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EACjCziB,KAAKihB,eAEY,EAAMjhB,KAAKojB,SAAStU,OAAOS,EAAA,EAASoa,KAAM3a,G9Dq7I7C,KAAK,GAGD,M8Dx7IZG,GAAWxH,EAAAnF,OAEjBxC,KAAKkkB,SAAS/U,I9Ds7IY,EAAa,EACzB,KAAK,GAcD,MAbA2B,GAAOnJ,EAAGnF,O8Dr7I5BxC,KAAKuR,GAAGI,cAAc4P,UAAW,EACjCvhB,KAAKuR,GAAGI,cAAc8Q,UAAW,EAEjCziB,KAAKkpB,WAAWpH,QAEZ9hB,KAAKojB,SAAS1U,gBAAgBoC,GAChC9Q,KAAKihB,YAAYnQ,EAAG5F,QAAS4F,EAAGO,WAGhCrR,KAAKihB,YAAY,iBACX/V,EAAwB,gBAAP4F,GAAkBA,EAAKA,EAAG5F,QACjDlL,KAAK0K,IAAItE,MAAM8E,GACflL,KAAK0K,IAAIO,UAAUC,K9Ds7IK,EAAa,EACzB,KAAK,GAAG,OAAQ,S8Dl7I1Bqe,EAAA/pB,UAAAkqB,mBAAR,cAAA1iB,GAAAhH,KACQ4pB,EAAQ5pB,KAAKkpB,WAAWvM,CAE9B,QADwC,QAAS,WAAY,gBAAiB,aACjE9Q,OAAO,SAACge,EAA0BjrB,GAE7C,MADAirB,GAAIjrB,GAAQoI,EAAKsgB,SAAStgB,EAAK8iB,WAAWF,EAAMG,SAAUnrB,IACnDirB,QAIHN,EAAA/pB,UAAAsqB,WAAR,SAAmBC,EAAsCnrB,GACvD,GAAMorB,GAAUD,EAASE,UAAUrrB,EACnC,OAAOorB,aAAmBE,UAAWF,EAAQ,GAAKA,GAG5CT,EAAA/pB,UAAA8nB,SAAR,SAAiB0C,GACf,GAAIA,YAAmBG,kBACrB,OAAQH,EAAQvQ,MACd,IAAK,WACL,IAAK,QACH,MAAOuQ,GAAQI,OACjB,SACE,MAAOJ,GAAQnpB,QAhFP0oB,EAAAlG,SAAW,UAoF7BkG,M9D87IM,SAAUlrB,EAAQuB,EAAqB3B,GAE7C,YACqB,IAAIyJ,GAAsCzJ,EAAoB,GAC1DosB,EAAmDpsB,EAAoB,G+DniJhGmqB,EAAAnqB,EAAA,IAAA+I,EAAAhH,MAGA,SAAQ2E,GAAW+C,EAAA,EAAAV,MAAA,qB/DuiJf,GACImH,GAAIqH,EADJxO,EAAQhH,IAEZ,OAAO0H,GAAyD,EAAE1H,KAAM,SAAU2H,GAC9E,OAAQA,EAAG1F,OACP,IAAK,G+D1iJJ,SAAMooB,EAAA,EAAYlc,G/D2iJnB,KAAK,G+D1iJF,MADPA,GAAKxG,EAAAnF,QACE,EAAM4lB,EAAA,EAAU5S,K/D6iJnB,KAAK,GAYD,M+DzjJRA,GAAO7N,EAAAnF,OAEbmC,EAAO2lB,gBAAkB,iBAAA5iB,GAAA,EAAAV,MAAA,2BAAAU,GAAA,EAAA1H,KAAA,SAAA2H,G/D8iJP,OAAQA,EAAG1F,OACP,IAAK,G+D/iJU,SAAMooB,EAAA,EAAYjc,MAAM,kBAAmB,U/DgjJ1D,KAAK,G+DhjJU,SAAAzG,EAAAnF,cACrCmC,EAAO4lB,cAAgB,iBAAA7iB,GAAA,EAAAV,MAAA,2BAAAU,GAAA,EAAA1H,KAAA,SAAA2H,GAAY,SAAA6N,EAAKS,MAAMuU,kBAAkB9B,gBAChE/jB,EAAO+jB,QAAU,WAAM,MAAAjoB,SAAQgqB,KAAK9lB,EAAO2lB,kBAAmB3lB,EAAO4lB,oB/DqjJ/C,S+DpjJrB5lB","file":"main.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 23);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = __extends;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __assign; });\n/* unused harmony export __rest */\n/* unused harmony export __decorate */\n/* unused harmony export __param */\n/* unused harmony export __metadata */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = __awaiter;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = __generator;\n/* unused harmony export __exportStar */\n/* unused harmony export __values */\n/* unused harmony export __read */\n/* unused harmony export __spread */\n/* unused harmony export __await */\n/* unused harmony export __asyncGenerator */\n/* unused harmony export __asyncDelegator */\n/* unused harmony export __asyncValues */\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AuthType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ErrorCode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return headerNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return queryStrings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return googleConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return facebookConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return urls; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return selectors; });\nvar AuthType;\r\n(function (AuthType) {\r\n AuthType[\"Snap\"] = \"snapretail\";\r\n AuthType[\"Google\"] = \"google\";\r\n AuthType[\"Facebook\"] = \"facebook\";\r\n})(AuthType || (AuthType = {}));\r\nvar ErrorCode;\r\n(function (ErrorCode) {\r\n ErrorCode[ErrorCode[\"Unknown\"] = 0] = \"Unknown\";\r\n ErrorCode[ErrorCode[\"AccountDoesNotExist\"] = 6] = \"AccountDoesNotExist\";\r\n ErrorCode[ErrorCode[\"RequirePreviousAuth\"] = 7] = \"RequirePreviousAuth\";\r\n})(ErrorCode || (ErrorCode = {}));\r\nvar headerNames = {\r\n AUTH_TYPE: 'X-SnapRetail-AuthType',\r\n PENDING_AUTH: 'X-SnapRetail-Pending-Auth',\r\n REDIRECT_URL: 'X-Redirect-Url',\r\n};\r\nvar queryStrings = {\r\n RETURN_URL: 'ReturnUrl',\r\n REFERRER: 'referrer',\r\n IGNORE_WORKFLOW: 'ignoreWorkflow',\r\n};\r\nvar configElementDataSet = document.querySelector('#sign-in').dataset;\r\nvar googleConfig = {\r\n CLIENT_ID: configElementDataSet.googleOAuthClientId,\r\n SCOPE: 'profile email openid',\r\n};\r\nvar facebookConfig = {\r\n APP_ID: configElementDataSet.facebookAppId,\r\n API_VERSION: 'v2.10',\r\n SCOPE: 'public_profile,email',\r\n};\r\nvar snap = window.snap;\r\nvar urls = {\r\n ERROR_LOGGING: snap.LOG_ERROR_URL,\r\n SNAP_SIGNIN: snap.RETAILER_API_URL + \"/accounts/SignIn\",\r\n SNAP_SIGNUP: snap.RETAILER_API_URL + \"/accounts\",\r\n};\r\nvar selectors = {\r\n MASTER_CONTROL: '.sign-in__master-control',\r\n FORM: '.sign-in__form',\r\n FORM_HELPTEXT: '.sign-in__form__helptext',\r\n FORM_SUBMIT: '.sign-in__submit',\r\n CONTROL: '.form-control',\r\n CONTROL_INPUT: '.form-control__input',\r\n CONTROL_HELPTEXT: '.form-control__helptext',\r\n};\r\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(4);\nvar toSubscriber_1 = __webpack_require__(39);\nvar observable_1 = __webpack_require__(18);\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nvar Observable = (function () {\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to a {@link create} static factory, but most of the time it is\n * a library implementation, which defines what and when will be emitted by an Observable. This means that calling\n * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, that if `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where first function is equivalent\n * of a `next` method, second of an `error` method and third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whatever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a {@link Scheduler}.\n *\n * @example Subscribe with an Observer\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() { // We actually could just remove this method,\n * }, // since we do not really care about errors right now.\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example Subscribe with functions\n * let sum = 0;\n *\n * Rx.Observable.of(1, 2, 3)\n * .subscribe(\n * function(value) {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * function() {\n * console.log('Sum equals: ' + sum);\n * }\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example Cancel a subscription\n * const subscription = Rx.Observable.interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => console.log('completed!') // Will not be called, even\n * ); // when cancelling subscription\n *\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n *\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n if (operator) {\n operator.call(sink, this.source);\n }\n else {\n sink.add(this.source ? this._subscribe(sink) : this._trySubscribe(sink));\n }\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n sink.error(err);\n }\n };\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [PromiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n Observable.prototype.forEach = function (next, PromiseCtor) {\n var _this = this;\n if (!PromiseCtor) {\n if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {\n PromiseCtor = root_1.root.Rx.config.Promise;\n }\n else if (root_1.root.Promise) {\n PromiseCtor = root_1.root.Promise;\n }\n }\n if (!PromiseCtor) {\n throw new Error('no Promise impl found');\n }\n return new PromiseCtor(function (resolve, reject) {\n // Must be declared in a separate statement to avoid a RefernceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n var subscription;\n subscription = _this.subscribe(function (value) {\n if (subscription) {\n // if there is a subscription, then we can surmise\n // the next handling is asynchronous. Any errors thrown\n // need to be rejected explicitly and unsubscribe must be\n // called manually\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n }\n else {\n // if there is NO subscription, then we're getting a nexted\n // value synchronously during subscription. We can just call it.\n // If it errors, Observable's `subscribe` will ensure the\n // unsubscription logic is called, then synchronously rethrow the error.\n // After that, Promise will trap the error and send it\n // down the rejection path.\n next(value);\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n return this.source.subscribe(subscriber);\n };\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n Observable.prototype[observable_1.observable] = function () {\n return this;\n };\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n */\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexports.Observable = Observable;\n//# sourceMappingURL=Observable.js.map\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return noop; });\n/* unused harmony export pipe */\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = deferredValue;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = exceptionToMessage;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n\r\nvar noop = function () { return undefined; };\r\nvar pipe = function () {\r\n var functions = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n functions[_i] = arguments[_i];\r\n }\r\n return function (data) { return functions.reduce(function (value, func) { return func(value); }, data); };\r\n};\r\nfunction deferredValue(valueFn) {\r\n // tslint:disable-next-line:space-before-function-paren\r\n var generator = (function () {\r\n var value;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n value = valueFn();\r\n _a.label = 1;\r\n case 1:\r\n if (false) return [3 /*break*/, 3];\r\n return [4 /*yield*/, value];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 1];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n })();\r\n return function () { return generator.next().value; };\r\n}\r\nfunction exceptionToMessage(ex) {\r\n return typeof ex === 'string' ? ex : JSON.stringify(ex, errorJsonReplacer);\r\n}\r\nfunction errorJsonReplacer(key, value) {\r\n return value instanceof Error ? value.toString() : value;\r\n}\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n// CommonJS / Node have global context exposed as \"global\" variable.\n// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake\n// the global \"global\" var for now.\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\nexports.root = _root;\n// Workaround Closure Compiler restriction: The body of a goog.module cannot use throw.\n// This is needed when used with angular/tsickle which inserts a goog.module statement.\n// Wrap in IIFE\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\n//# sourceMappingURL=root.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(38)))\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isFunction_1 = __webpack_require__(11);\nvar Subscription_1 = __webpack_require__(7);\nvar Observer_1 = __webpack_require__(17);\nvar rxSubscriber_1 = __webpack_require__(12);\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n function Subscriber(destinationOrNext, error, complete) {\n _super.call(this);\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = Observer_1.empty;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = Observer_1.empty;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.destination = destinationOrNext;\n this.destination.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n */\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached {@link Error}. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n return this;\n };\n return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n _super.call(this);\n this._parentSubscriber = _parentSubscriber;\n var next;\n var context = this;\n if (isFunction_1.isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== Observer_1.empty) {\n context = Object.create(observerOrNext);\n if (isFunction_1.isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._error) {\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n throw err;\n }\n else {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n throw err;\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=Subscriber.js.map\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return log; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(1);\n\r\nvar log = {\r\n /* tslint:disable:no-console */\r\n info: function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return console.info.apply(console, args);\r\n },\r\n warn: function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return console.warn.apply(console, args);\r\n },\r\n error: function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return console.error.apply(console, args);\r\n },\r\n /* tslint:enable:no-console */\r\n sendError: function (message) {\r\n var errorData = new FormData();\r\n errorData.append('url', window.location.href);\r\n errorData.append('message', message);\r\n fetch(__WEBPACK_IMPORTED_MODULE_0__constants__[\"h\" /* urls */].ERROR_LOGGING, {\r\n mode: 'no-cors',\r\n method: 'post',\r\n body: errorData,\r\n });\r\n },\r\n};\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isArray_1 = __webpack_require__(40);\nvar isObject_1 = __webpack_require__(15);\nvar isFunction_1 = __webpack_require__(11);\nvar tryCatch_1 = __webpack_require__(41);\nvar errorObject_1 = __webpack_require__(16);\nvar UnsubscriptionError_1 = __webpack_require__(42);\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nvar Subscription = (function () {\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n function Subscription(unsubscribe) {\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n this.closed = false;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n Subscription.prototype.unsubscribe = function () {\n var hasErrors = false;\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parent = null;\n this._parents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n var index = -1;\n var len = _parents ? _parents.length : 0;\n // if this._parent is null, then so is this._parents, and we\n // don't have to remove ourselves from any parent subscriptions.\n while (_parent) {\n _parent.remove(this);\n // if this._parents is null or index >= len,\n // then _parent is set to null, and the loop exits\n _parent = ++index < len && _parents[index] || null;\n }\n if (isFunction_1.isFunction(_unsubscribe)) {\n var trial = tryCatch_1.tryCatch(_unsubscribe).call(this);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n errors = errors || (errorObject_1.errorObject.e instanceof UnsubscriptionError_1.UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject_1.errorObject.e.errors) : [errorObject_1.errorObject.e]);\n }\n }\n if (isArray_1.isArray(_subscriptions)) {\n index = -1;\n len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject_1.isObject(sub)) {\n var trial = tryCatch_1.tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n errors = errors || [];\n var err = errorObject_1.errorObject.e;\n if (err instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n }\n if (hasErrors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n };\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n Subscription.prototype.add = function (teardown) {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n if (teardown === this) {\n return this;\n }\n var subscription = teardown;\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (typeof subscription._addParent !== 'function' /* quack quack */) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n var subscriptions = this._subscriptions || (this._subscriptions = []);\n subscriptions.push(subscription);\n subscription._addParent(this);\n return subscription;\n };\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.prototype._addParent = function (parent) {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n if (!_parent || _parent === parent) {\n // If we don't have a parent, or the new parent is the same as the\n // current parent, then set this._parent to the new parent.\n this._parent = parent;\n }\n else if (!_parents) {\n // If there's already one parent, but not multiple, allocate an Array to\n // store the rest of the parent Subscriptions.\n this._parents = [parent];\n }\n else if (_parents.indexOf(parent) === -1) {\n // Only add the new parent to the _parents list if it's not already there.\n _parents.push(parent);\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexports.Subscription = Subscription;\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return facebookApi; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__shared_script__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__shared_util__ = __webpack_require__(3);\n\r\n\r\n\r\nvar libValue = Object(__WEBPACK_IMPORTED_MODULE_2__shared_util__[\"a\" /* deferredValue */])(function () { return new Promise(function (resolve) {\r\n window.fbAsyncInit = function () { return resolve(window.FB); };\r\n Object(__WEBPACK_IMPORTED_MODULE_1__shared_script__[\"a\" /* insertScript */])({\r\n src: 'https://connect.facebook.net/en_US/sdk.js',\r\n id: 'facebook-jssdk',\r\n async: true,\r\n defer: true,\r\n });\r\n}); });\r\nvar facebookApi = {\r\n get fb() {\r\n return libValue();\r\n },\r\n graph: function () {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return new Promise(function (resolve) { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](_this, void 0, void 0, function () { var _a; return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_b) {\r\n switch (_b.label) {\r\n case 0: return [4 /*yield*/, facebookApi.fb];\r\n case 1: return [2 /*return*/, (_a = (_b.sent())).api.apply(_a, args.concat([resolve]))];\r\n }\r\n }); }); });\r\n },\r\n loginStatus: function (force) {\r\n var _this = this;\r\n if (force === void 0) { force = false; }\r\n return new Promise(function (resolve) { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](_this, void 0, void 0, function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, facebookApi.fb];\r\n case 1: return [2 /*return*/, (_a.sent()).getLoginStatus(resolve, force)];\r\n }\r\n }); }); });\r\n },\r\n};\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SnapAuthException\", function() { return SnapAuthException; });\n/* harmony export (immutable) */ __webpack_exports__[\"isAuthException\"] = isAuthException;\n/* harmony export (immutable) */ __webpack_exports__[\"setPendingAuth\"] = setPendingAuth;\n/* harmony export (immutable) */ __webpack_exports__[\"signIn\"] = signIn;\n/* harmony export (immutable) */ __webpack_exports__[\"signUp\"] = signUp;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__shared_log__ = __webpack_require__(6);\n\r\n\r\n\r\nvar queryString = __webpack_require__(26);\r\nvar currentParams = queryString.parse(location.search);\r\nvar pendingAuth;\r\nvar SnapAuthException = (function () {\r\n function SnapAuthException(message, controls, code, response) {\r\n if (controls === void 0) { controls = new Map(); }\r\n if (code === void 0) { code = __WEBPACK_IMPORTED_MODULE_1__constants__[\"b\" /* ErrorCode */].Unknown; }\r\n if (response === void 0) { response = null; }\r\n this.message = message;\r\n this.controls = controls;\r\n this.code = code;\r\n this.response = response;\r\n }\r\n return SnapAuthException;\r\n}());\r\n\r\nfunction isAuthException(ex) {\r\n return ex instanceof SnapAuthException;\r\n}\r\nfunction setPendingAuth(value) {\r\n pendingAuth = value;\r\n}\r\nfunction signIn(authType, data) {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var headers, returnUrl, response, _a, body, _b, _c, _d;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n headers = (_d = {}, _d[__WEBPACK_IMPORTED_MODULE_1__constants__[\"e\" /* headerNames */].AUTH_TYPE] = authType, _d);\r\n if (pendingAuth) {\r\n headers[__WEBPACK_IMPORTED_MODULE_1__constants__[\"e\" /* headerNames */].PENDING_AUTH] = pendingAuth;\r\n }\r\n returnUrl = currentParams[__WEBPACK_IMPORTED_MODULE_1__constants__[\"f\" /* queryStrings */].RETURN_URL];\r\n if (returnUrl) {\r\n headers[__WEBPACK_IMPORTED_MODULE_1__constants__[\"e\" /* headerNames */].REDIRECT_URL] = returnUrl;\r\n }\r\n return [4 /*yield*/, sendRequest(__WEBPACK_IMPORTED_MODULE_1__constants__[\"h\" /* urls */].SNAP_SIGNIN, data, headers)];\r\n case 1:\r\n response = _e.sent();\r\n if (response.ok) {\r\n return [2 /*return*/, response];\r\n }\r\n _a = response.status;\r\n switch (_a) {\r\n case 422: return [3 /*break*/, 2];\r\n }\r\n return [3 /*break*/, 4];\r\n case 2: return [4 /*yield*/, response.json()];\r\n case 3:\r\n body = _e.sent();\r\n throw new SnapAuthException(body.message, mapDetails(body.details), body.code, response);\r\n case 4:\r\n _b = unknownError;\r\n _c = \"Unexpected http response (\" + response.status + \") \";\r\n return [4 /*yield*/, response.text()];\r\n case 5: throw _b.apply(void 0, [_c + (_e.sent())]);\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nfunction signUp(authType, data) {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var url, headers, ignoreWorkflow, returnUrl, response, _a, body, _b, _c, _d;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n url = attachReferrer(__WEBPACK_IMPORTED_MODULE_1__constants__[\"h\" /* urls */].SNAP_SIGNUP);\r\n headers = (_d = {}, _d[__WEBPACK_IMPORTED_MODULE_1__constants__[\"e\" /* headerNames */].AUTH_TYPE] = authType, _d);\r\n ignoreWorkflow = __WEBPACK_IMPORTED_MODULE_1__constants__[\"f\" /* queryStrings */].IGNORE_WORKFLOW in currentParams;\r\n returnUrl = currentParams[__WEBPACK_IMPORTED_MODULE_1__constants__[\"f\" /* queryStrings */].RETURN_URL];\r\n if (ignoreWorkflow && returnUrl) {\r\n headers[__WEBPACK_IMPORTED_MODULE_1__constants__[\"e\" /* headerNames */].REDIRECT_URL] = returnUrl;\r\n }\r\n return [4 /*yield*/, sendRequest(url, data, headers)];\r\n case 1:\r\n response = _e.sent();\r\n if (response.ok) {\r\n return [2 /*return*/, response];\r\n }\r\n _a = response.status;\r\n switch (_a) {\r\n case 422: return [3 /*break*/, 2];\r\n case 409: return [3 /*break*/, 2];\r\n }\r\n return [3 /*break*/, 4];\r\n case 2: return [4 /*yield*/, response.json()];\r\n case 3:\r\n body = _e.sent();\r\n throw new SnapAuthException(body.message, mapDetails(body.details), body.code, response);\r\n case 4:\r\n _b = unknownError;\r\n _c = \"Unexpected http response (\" + response.status + \") \";\r\n return [4 /*yield*/, response.text()];\r\n case 5: throw _b.apply(void 0, [_c + (_e.sent())]);\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nfunction attachReferrer(url) {\r\n var referrer = getReferrer();\r\n if (!referrer) {\r\n return url;\r\n }\r\n var param = queryString.stringify((_a = {}, _a[__WEBPACK_IMPORTED_MODULE_1__constants__[\"f\" /* queryStrings */].REFERRER] = referrer, _a));\r\n var queryDelimiter = url.indexOf('?') > -1 ? '&' : '?';\r\n return \"\" + url + queryDelimiter + param;\r\n var _a;\r\n}\r\nfunction getReferrer() {\r\n var referrer = currentParams[__WEBPACK_IMPORTED_MODULE_1__constants__[\"f\" /* queryStrings */].REFERRER];\r\n if (Array.isArray(referrer)) {\r\n referrer = referrer[0];\r\n }\r\n return typeof referrer === 'string' ? referrer.trim() || undefined : undefined;\r\n}\r\nfunction mapDetails(details) {\r\n if (!Array.isArray(details)) {\r\n return;\r\n }\r\n return new Map(details.map(function (_a) {\r\n var key = _a.key, message = _a.message;\r\n return [key, message];\r\n }));\r\n}\r\nfunction sendRequest(url, data, headers) {\r\n if (headers === void 0) { headers = {}; }\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var ex_1;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, fetch(url, {\r\n credentials: 'include',\r\n method: 'post',\r\n headers: new Headers(__WEBPACK_IMPORTED_MODULE_0_tslib__[\"a\" /* __assign */]({ 'Content-Type': 'application/json' }, headers)),\r\n body: JSON.stringify(data),\r\n })];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n ex_1 = _a.sent();\r\n throw unknownError(ex_1);\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nfunction unknownError(message) {\r\n __WEBPACK_IMPORTED_MODULE_2__shared_log__[\"a\" /* log */].sendError(message);\r\n return new SnapAuthException(\"Can't sign in\");\r\n}\r\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ui; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__master_control__ = __webpack_require__(34);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__sign_up_control__ = __webpack_require__(35);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_3__sign_up_control__[\"a\"]; });\n/* unused harmony reexport MasterControl */\n/* unused harmony reexport SignInControl */\n/* unused harmony reexport SignInForm */\n\r\n\r\n\r\n\r\n\r\nvar ui = {\r\n masterControl: new __WEBPACK_IMPORTED_MODULE_2__master_control__[\"a\" /* MasterControl */](__WEBPACK_IMPORTED_MODULE_0__constants__[\"g\" /* selectors */].MASTER_CONTROL),\r\n forms: new __WEBPACK_IMPORTED_MODULE_1__components__[\"a\" /* Components */](__WEBPACK_IMPORTED_MODULE_0__constants__[\"g\" /* selectors */].FORM, function (el) { return new __WEBPACK_IMPORTED_MODULE_1__components__[\"c\" /* SignInForm */](el); }),\r\n controls: new __WEBPACK_IMPORTED_MODULE_1__components__[\"a\" /* Components */](__WEBPACK_IMPORTED_MODULE_0__constants__[\"g\" /* selectors */].CONTROL, function (el) { return new __WEBPACK_IMPORTED_MODULE_1__components__[\"b\" /* SignInControl */](el); }),\r\n};\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\nexports.isFunction = isFunction;\n//# sourceMappingURL=isFunction.js.map\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(4);\nvar Symbol = root_1.root.Symbol;\nexports.rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') ?\n Symbol.for('rxSubscriber') : '@@rxSubscriber';\n/**\n * @deprecated use rxSubscriber instead\n */\nexports.$$rxSubscriber = exports.rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = insertScript;\nfunction isEventProp(name) {\r\n return /^on/.test(name);\r\n}\r\nfunction extractEventName(name) {\r\n return name.slice(2).toLowerCase();\r\n}\r\nfunction setBooleanProp(target, name, value) {\r\n if (value) {\r\n target.setAttribute(name, value);\r\n target[name] = true;\r\n }\r\n else {\r\n target[name] = false;\r\n }\r\n}\r\nfunction setProp(target, name, value) {\r\n if (isEventProp(name)) {\r\n target.addEventListener(extractEventName(name), value);\r\n }\r\n else if (typeof value === 'boolean') {\r\n setBooleanProp(target, name, value);\r\n }\r\n else {\r\n target.setAttribute(name, value);\r\n }\r\n}\r\nfunction setProps(target, props) {\r\n Object.entries(props).forEach(function (_a) {\r\n var name = _a[0], value = _a[1];\r\n return setProp(target, name, value);\r\n });\r\n}\r\nfunction insertScript(props) {\r\n var script = document.createElement('script');\r\n setProps(script, props);\r\n var sibling = document.getElementsByTagName('script')[0];\r\n sibling.parentNode.insertBefore(script, sibling);\r\n return script;\r\n}\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Component; });\nvar Component = (function () {\r\n function Component($root) {\r\n this.$root = $root;\r\n this.name = this.$root.dataset.name || 'unknown';\r\n }\r\n Object.defineProperty(Component.prototype, \"$\", {\r\n get: function () {\r\n return this.$root;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Component.prototype, \"helptext\", {\r\n get: function () {\r\n var $helptext = this.$helptext;\r\n return $helptext == null ? null : $helptext.textContent;\r\n },\r\n set: function (text) {\r\n var $helptext = this.$helptext;\r\n if ($helptext != null) {\r\n $helptext.textContent = text;\r\n }\r\n else {\r\n throw new Error(\"Helptext element not found in component \\\"\" + this.name + \"\\\"\");\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Component;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction isObject(x) {\n return x != null && typeof x === 'object';\n}\nexports.isObject = isObject;\n//# sourceMappingURL=isObject.js.map\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// typeof any so that it we don't have to cast when comparing a result to the error object\nexports.errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.empty = {\n closed: true,\n next: function (value) { },\n error: function (err) { throw err; },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(4);\nfunction getSymbolObservable(context) {\n var $$observable;\n var Symbol = context.Symbol;\n if (typeof Symbol === 'function') {\n if (Symbol.observable) {\n $$observable = Symbol.observable;\n }\n else {\n $$observable = Symbol('observable');\n Symbol.observable = $$observable;\n }\n }\n else {\n $$observable = '@@observable';\n }\n return $$observable;\n}\nexports.getSymbolObservable = getSymbolObservable;\nexports.observable = getSymbolObservable(root_1.root);\n/**\n * @deprecated use observable instead\n */\nexports.$$observable = exports.observable;\n//# sourceMappingURL=observable.js.map\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = __webpack_require__(5);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar OuterSubscriber = (function (_super) {\n __extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n _super.apply(this, arguments);\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber_1.Subscriber));\nexports.OuterSubscriber = OuterSubscriber;\n//# sourceMappingURL=OuterSubscriber.js.map\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(4);\nvar isArrayLike_1 = __webpack_require__(49);\nvar isPromise_1 = __webpack_require__(50);\nvar isObject_1 = __webpack_require__(15);\nvar Observable_1 = __webpack_require__(2);\nvar iterator_1 = __webpack_require__(51);\nvar InnerSubscriber_1 = __webpack_require__(52);\nvar observable_1 = __webpack_require__(18);\nfunction subscribeToResult(outerSubscriber, result, outerValue, outerIndex) {\n var destination = new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n if (destination.closed) {\n return null;\n }\n if (result instanceof Observable_1.Observable) {\n if (result._isScalar) {\n destination.next(result.value);\n destination.complete();\n return null;\n }\n else {\n return result.subscribe(destination);\n }\n }\n else if (isArrayLike_1.isArrayLike(result)) {\n for (var i = 0, len = result.length; i < len && !destination.closed; i++) {\n destination.next(result[i]);\n }\n if (!destination.closed) {\n destination.complete();\n }\n }\n else if (isPromise_1.isPromise(result)) {\n result.then(function (value) {\n if (!destination.closed) {\n destination.next(value);\n destination.complete();\n }\n }, function (err) { return destination.error(err); })\n .then(null, function (err) {\n // Escaping the Promise trap: globally throw unhandled errors\n root_1.root.setTimeout(function () { throw err; });\n });\n return destination;\n }\n else if (result && typeof result[iterator_1.iterator] === 'function') {\n var iterator = result[iterator_1.iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n destination.complete();\n break;\n }\n destination.next(item.value);\n if (destination.closed) {\n break;\n }\n } while (true);\n }\n else if (result && typeof result[observable_1.observable] === 'function') {\n var obs = result[observable_1.observable]();\n if (typeof obs.subscribe !== 'function') {\n destination.error(new TypeError('Provided object does not correctly implement Symbol.observable'));\n }\n else {\n return obs.subscribe(new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex));\n }\n }\n else {\n var value = isObject_1.isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = (\"You provided \" + value + \" where a stream was expected.\")\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n destination.error(new TypeError(msg));\n }\n return null;\n}\nexports.subscribeToResult = subscribeToResult;\n//# sourceMappingURL=subscribeToResult.js.map\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nvar ObjectUnsubscribedError = (function (_super) {\n __extends(ObjectUnsubscribedError, _super);\n function ObjectUnsubscribedError() {\n var err = _super.call(this, 'object unsubscribed');\n this.name = err.name = 'ObjectUnsubscribedError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return ObjectUnsubscribedError;\n}(Error));\nexports.ObjectUnsubscribedError = ObjectUnsubscribedError;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n\n/***/ }),\n/* 22 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return googleApi; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__shared_script__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__shared_util__ = __webpack_require__(3);\n\r\n\r\n\r\nvar libValue = Object(__WEBPACK_IMPORTED_MODULE_2__shared_util__[\"a\" /* deferredValue */])(function () { return new Promise(function (resolve) {\r\n Object(__WEBPACK_IMPORTED_MODULE_1__shared_script__[\"a\" /* insertScript */])({\r\n src: 'https://apis.google.com/js/platform.js',\r\n onload: function () { return resolve(window.gapi); },\r\n async: true,\r\n defer: true,\r\n });\r\n}); });\r\nvar googleApi = {\r\n get gapi() {\r\n return libValue();\r\n },\r\n load: function (libraries, timeout) {\r\n var _this = this;\r\n if (timeout === void 0) { timeout = 5000; }\r\n return new Promise(function (resolve, reject) { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](_this, void 0, void 0, function () {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, googleApi.gapi];\r\n case 1: return [2 /*return*/, (_a.sent()).load(libraries, {\r\n callback: resolve,\r\n onerror: function () { return reject('gapi.client failed to load.'); },\r\n ontimeout: function () { return reject('gapi.client timed out.'); },\r\n timeout: timeout,\r\n })];\r\n }\r\n });\r\n }); });\r\n },\r\n initAuth: function (params) {\r\n var _this = this;\r\n // https://developers.google.com/identity/sign-in/web/reference#googleauththenoninit-onerror\r\n return new Promise(function (resolve, reject) { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](_this, void 0, void 0, function () {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, googleApi.gapi];\r\n case 1:\r\n (_a.sent()).auth2.init(params)\r\n .then(function (googleAuth) { return resolve({ googleAuth: googleAuth }); }, reject);\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); });\r\n },\r\n};\r\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__ = __webpack_require__(24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_facebook__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_google__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_snap__ = __webpack_require__(60);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__shared_util__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__debug__ = __webpack_require__(62);\n\r\n\r\n\r\n\r\n\r\n\r\nObject(__WEBPACK_IMPORTED_MODULE_3__components_snap__[\"a\" /* init */])().catch(__WEBPACK_IMPORTED_MODULE_4__shared_util__[\"c\" /* noop */]);\r\nObject(__WEBPACK_IMPORTED_MODULE_2__components_google__[\"a\" /* init */])().catch(__WEBPACK_IMPORTED_MODULE_4__shared_util__[\"c\" /* noop */]);\r\nObject(__WEBPACK_IMPORTED_MODULE_1__components_facebook__[\"a\" /* init */])().catch(__WEBPACK_IMPORTED_MODULE_4__shared_util__[\"c\" /* noop */]);\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\n(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = init;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__core_facebook_api__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__core_snap_auth__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__shared_log__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__shared_ui__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__shared_util__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__facebook_component__ = __webpack_require__(36);\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction init() {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var signInControl, $signUp, signUpControl, fb, ex_1, message;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n signInControl = __WEBPACK_IMPORTED_MODULE_5__shared_ui__[\"b\" /* ui */].controls.get(__WEBPACK_IMPORTED_MODULE_1__constants__[\"a\" /* AuthType */].Facebook);\r\n if (signInControl == null) {\r\n throw new Error(\"UI control not found for \\\"\" + __WEBPACK_IMPORTED_MODULE_1__constants__[\"a\" /* AuthType */].Facebook + \"\\\".\");\r\n }\r\n $signUp = signInControl.$.querySelector('.form-control__sign-up');\r\n if ($signUp == null) {\r\n throw new Error('Sign up button not found.');\r\n }\r\n signUpControl = new __WEBPACK_IMPORTED_MODULE_5__shared_ui__[\"a\" /* SignUpControl */]($signUp);\r\n return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_2__core_facebook_api__[\"a\" /* facebookApi */].fb];\r\n case 1:\r\n fb = _a.sent();\r\n // Initialize sdk\r\n fb.init({\r\n appId: __WEBPACK_IMPORTED_MODULE_1__constants__[\"c\" /* facebookConfig */].APP_ID,\r\n version: __WEBPACK_IMPORTED_MODULE_1__constants__[\"c\" /* facebookConfig */].API_VERSION,\r\n status: true,\r\n });\r\n return [2 /*return*/, new __WEBPACK_IMPORTED_MODULE_7__facebook_component__[\"a\" /* FacebookComponent */](fb, __WEBPACK_IMPORTED_MODULE_3__core_snap_auth__, signInControl, signUpControl, __WEBPACK_IMPORTED_MODULE_5__shared_ui__[\"b\" /* ui */], __WEBPACK_IMPORTED_MODULE_4__shared_log__[\"a\" /* log */], __WEBPACK_IMPORTED_MODULE_1__constants__[\"c\" /* facebookConfig */].SCOPE)];\r\n case 2:\r\n ex_1 = _a.sent();\r\n message = Object(__WEBPACK_IMPORTED_MODULE_6__shared_util__[\"b\" /* exceptionToMessage */])(ex_1);\r\n __WEBPACK_IMPORTED_MODULE_4__shared_log__[\"a\" /* log */].warn(message);\r\n __WEBPACK_IMPORTED_MODULE_4__shared_log__[\"a\" /* log */].sendError(message);\r\n throw new Error(message);\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar strictUriEncode = __webpack_require__(27);\nvar objectAssign = __webpack_require__(28);\nvar decodeComponent = __webpack_require__(29);\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t} else if (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeComponent(val);\n\n\t\tformatter(decodeComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components__ = __webpack_require__(31);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__components__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__sign_in_control__ = __webpack_require__(32);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_1__sign_in_control__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__sign_in_form__ = __webpack_require__(33);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_2__sign_in_form__[\"a\"]; });\n\r\n\r\n\r\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Components; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(3);\n\r\nvar Components = (function () {\r\n function Components(selector, componentFactory) {\r\n this.componentsValue = Object(__WEBPACK_IMPORTED_MODULE_0__util__[\"a\" /* deferredValue */])(function () {\r\n var $components = Array.from(document.querySelectorAll(selector));\r\n return new Map($components.map(function ($component) {\r\n var instance = componentFactory($component);\r\n return [instance.name, instance];\r\n }));\r\n });\r\n }\r\n Components.prototype.get = function (name) {\r\n return this.componentsValue().get(name);\r\n };\r\n Components.prototype.setHelptext = function (values) {\r\n if (values === void 0) { values = new Map(); }\r\n this.componentsValue().forEach(function (component) {\r\n component.helptext = values.get(component.name) || '';\r\n });\r\n };\r\n return Components;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SignInControl; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__component__ = __webpack_require__(14);\n\r\n\r\n\r\nvar SignInControl = (function (_super) {\r\n __WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __extends */](SignInControl, _super);\r\n function SignInControl() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(SignInControl.prototype, \"disabled\", {\r\n get: function () {\r\n return this.$input.disabled;\r\n },\r\n set: function (value) {\r\n this.$input.disabled = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SignInControl.prototype, \"hidden\", {\r\n get: function () {\r\n return this.$root.hidden;\r\n },\r\n set: function (value) {\r\n this.$root.hidden = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SignInControl.prototype, \"$helptext\", {\r\n get: function () {\r\n return this.$root.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__[\"g\" /* selectors */].CONTROL_HELPTEXT);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SignInControl.prototype, \"$input\", {\r\n get: function () {\r\n var $input = this.$root.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__[\"g\" /* selectors */].CONTROL_INPUT);\r\n if ($input == null) {\r\n throw new Error(\"Input element not found in component \\\"\" + this.name + \"\\\"\");\r\n }\r\n return $input;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n SignInControl.prototype.registerInteractionHandler = function (type, listener) {\r\n this.$input.addEventListener(type, listener);\r\n };\r\n SignInControl.prototype.deregisterInteractionHandler = function (type, listener) {\r\n this.$input.removeEventListener(type, listener);\r\n };\r\n return SignInControl;\r\n}(__WEBPACK_IMPORTED_MODULE_2__component__[\"a\" /* Component */]));\r\n\r\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SignInForm; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__component__ = __webpack_require__(14);\n\r\n\r\n\r\nvar SignInForm = (function (_super) {\r\n __WEBPACK_IMPORTED_MODULE_0_tslib__[\"c\" /* __extends */](SignInForm, _super);\r\n function SignInForm() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(SignInForm.prototype, \"$helptext\", {\r\n get: function () {\r\n return this.$root.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__[\"g\" /* selectors */].FORM_HELPTEXT);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n SignInForm.prototype.focus = function () {\r\n var $submit = this.$root.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__[\"g\" /* selectors */].FORM_SUBMIT);\r\n if ($submit != null) {\r\n return $submit.focus();\r\n }\r\n };\r\n SignInForm.prototype.registerInteractionHandler = function (type, listener) {\r\n this.$root.addEventListener(type, listener);\r\n };\r\n SignInForm.prototype.deregisterInteractionHandler = function (type, listener) {\r\n this.$root.removeEventListener(type, listener);\r\n };\r\n return SignInForm;\r\n}(__WEBPACK_IMPORTED_MODULE_2__component__[\"a\" /* Component */]));\r\n\r\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MasterControl; });\nvar classNames = {\r\n INITIALIZED: 'sign-in__master-control--initialized',\r\n PROGRESS_CLOSED: 'mdc-linear-progress--closed',\r\n};\r\nvar selectors = {\r\n PROGRESS: '.mdc-linear-progress',\r\n};\r\nvar MasterControl = (function () {\r\n function MasterControl(selector) {\r\n this.$element = document.querySelector(selector);\r\n if (this.$element == null) {\r\n throw new Error('Master control element not found.');\r\n }\r\n this.$progress = this.$element.querySelector(selectors.PROGRESS);\r\n if (this.$progress == null) {\r\n throw new Error('Progress element not found in master control.');\r\n }\r\n this.init();\r\n }\r\n Object.defineProperty(MasterControl.prototype, \"disabled\", {\r\n get: function () {\r\n return this.$element.disabled;\r\n },\r\n set: function (value) {\r\n this.$element.disabled = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MasterControl.prototype, \"progress\", {\r\n get: function () {\r\n return this.$progress.classList.contains(classNames.PROGRESS_CLOSED);\r\n },\r\n set: function (value) {\r\n if (value) {\r\n this.$progress.classList.remove(classNames.PROGRESS_CLOSED);\r\n this.$progress.setAttribute('aria-hidden', 'false');\r\n }\r\n else {\r\n this.$progress.classList.add(classNames.PROGRESS_CLOSED);\r\n this.$progress.setAttribute('aria-hidden', 'true');\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n MasterControl.prototype.init = function () {\r\n this.progress = false;\r\n this.$element.classList.add(classNames.INITIALIZED);\r\n };\r\n return MasterControl;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SignUpControl; });\nvar SignUpControl = (function () {\r\n function SignUpControl($element) {\r\n this.$element = $element;\r\n }\r\n Object.defineProperty(SignUpControl.prototype, \"disabled\", {\r\n get: function () {\r\n return this.$element.disabled;\r\n },\r\n set: function (value) {\r\n this.$element.disabled = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SignUpControl.prototype, \"hidden\", {\r\n get: function () {\r\n return this.$element.hidden;\r\n },\r\n set: function (value) {\r\n this.$element.hidden = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n SignUpControl.prototype.focus = function () {\r\n this.$element.focus();\r\n };\r\n SignUpControl.prototype.registerInteractionHandler = function (type, listener) {\r\n this.$element.addEventListener(type, listener);\r\n };\r\n SignUpControl.prototype.deregisterInteractionHandler = function (type, listener) {\r\n this.$element.removeEventListener(type, listener);\r\n };\r\n return SignUpControl;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FacebookComponent; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_add_observable_fromEventPattern__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_add_observable_fromEventPattern___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_add_observable_fromEventPattern__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_filter__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_filter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_add_operator_filter__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_switchMap__ = __webpack_require__(47);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_switchMap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_switchMap__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_switchMapTo__ = __webpack_require__(53);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_switchMapTo___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_switchMapTo__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_BehaviorSubject__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_BehaviorSubject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_rxjs_BehaviorSubject__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_Observable__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_Observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_rxjs_Observable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__constants__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__core_facebook_api__ = __webpack_require__(8);\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar FacebookComponent = (function () {\r\n function FacebookComponent(fb, snapAuth, signInControl, signUpControl, ui, log, SCOPE) {\r\n this.fb = fb;\r\n this.snapAuth = snapAuth;\r\n this.signInControl = signInControl;\r\n this.signUpControl = signUpControl;\r\n this.ui = ui;\r\n this.log = log;\r\n this.SCOPE = SCOPE;\r\n this.formName = 'alt';\r\n this.status$ = new __WEBPACK_IMPORTED_MODULE_5_rxjs_BehaviorSubject__[\"BehaviorSubject\"]({ status: '' });\r\n this.signInControl.hidden = false;\r\n this.signUpControl.hidden = true;\r\n this.handleSignUpInteraction = this.handleSignUpInteraction.bind(this);\r\n this.listenForControlInteraction = this.listenForControlInteraction.bind(this);\r\n this.listenForStatusChange = this.listenForStatusChange.bind(this);\r\n this.signIn = this.signIn.bind(this);\r\n __WEBPACK_IMPORTED_MODULE_6_rxjs_Observable__[\"Observable\"].fromEventPattern(this.listenForStatusChange)\r\n .subscribe(this.status$);\r\n __WEBPACK_IMPORTED_MODULE_6_rxjs_Observable__[\"Observable\"].fromEventPattern(this.listenForControlInteraction)\r\n .switchMapTo(this.status$)\r\n .switchMap(this.signIntoFacebook({ scope: this.SCOPE }))\r\n .filter(FacebookComponent.isConnected)\r\n .subscribe(this.signIn);\r\n // Listen for click on sign up button\r\n this.signUpControl.registerInteractionHandler('click', this.handleSignUpInteraction);\r\n }\r\n FacebookComponent.prototype.handleSignUpInteraction = function () {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var loginStatus;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_8__core_facebook_api__[\"a\" /* facebookApi */].loginStatus()];\r\n case 1:\r\n loginStatus = _a.sent();\r\n if (!FacebookComponent.isConnected(loginStatus)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.signUp(loginStatus)];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n FacebookComponent.prototype.listenForControlInteraction = function (handler) {\r\n this.signInControl.registerInteractionHandler('click', handler);\r\n };\r\n FacebookComponent.prototype.listenForStatusChange = function (handler) {\r\n this.fb.Event.subscribe('auth.statusChange', handler);\r\n };\r\n FacebookComponent.prototype.navigate = function (response) {\r\n var redirectUrl = response.headers.get(__WEBPACK_IMPORTED_MODULE_7__constants__[\"e\" /* headerNames */].REDIRECT_URL);\r\n window.location.href = redirectUrl || '/';\r\n };\r\n FacebookComponent.prototype.setHelptext = function (message, messages) {\r\n if (message === void 0) { message = ''; }\r\n this.ui.forms.setHelptext(new Map([[this.formName, message]]));\r\n this.ui.controls.setHelptext(messages);\r\n };\r\n FacebookComponent.prototype.signIn = function (loginStatus) {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var response, ex_1, pendingAuth, message;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n return [4 /*yield*/, this.snapAuth.signIn(__WEBPACK_IMPORTED_MODULE_7__constants__[\"a\" /* AuthType */].Facebook, loginStatus.authResponse)];\r\n case 1:\r\n response = _a.sent();\r\n this.navigate(response);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n ex_1 = _a.sent();\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n if (this.snapAuth.isAuthException(ex_1)) {\r\n this.setHelptext(ex_1.message, ex_1.controls);\r\n if (ex_1.code === __WEBPACK_IMPORTED_MODULE_7__constants__[\"b\" /* ErrorCode */].AccountDoesNotExist) {\r\n this.signUpControl.hidden = false;\r\n this.signUpControl.focus();\r\n }\r\n if (ex_1.code === __WEBPACK_IMPORTED_MODULE_7__constants__[\"b\" /* ErrorCode */].RequirePreviousAuth && ex_1.response != null) {\r\n pendingAuth = ex_1.response.headers.get(__WEBPACK_IMPORTED_MODULE_7__constants__[\"e\" /* headerNames */].PENDING_AUTH);\r\n this.snapAuth.setPendingAuth(pendingAuth || '');\r\n }\r\n }\r\n else {\r\n this.setHelptext(\"Can't sign in\");\r\n message = typeof ex_1 === 'string' ? ex_1 : ex_1.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n return [3 /*break*/, 3];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n FacebookComponent.prototype.signUp = function (loginStatus) {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var response, ex_2, message;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n return [4 /*yield*/, this.snapAuth.signUp(__WEBPACK_IMPORTED_MODULE_7__constants__[\"a\" /* AuthType */].Facebook, loginStatus.authResponse)];\r\n case 1:\r\n response = _a.sent();\r\n this.navigate(response);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n ex_2 = _a.sent();\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n if (this.snapAuth.isAuthException(ex_2)) {\r\n this.setHelptext(ex_2.message, ex_2.controls);\r\n }\r\n else {\r\n this.setHelptext(\"Can't sign up\");\r\n message = typeof ex_2 === 'string' ? ex_2 : ex_2.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n return [3 /*break*/, 3];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n FacebookComponent.prototype.signIntoFacebook = function (options) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n return function (loginStatus) {\r\n return FacebookComponent.isConnected(loginStatus) ?\r\n Promise.resolve(loginStatus) :\r\n new Promise(function (resolve) { return _this.fb.login(resolve, options); });\r\n };\r\n };\r\n FacebookComponent.isConnected = function (_a) {\r\n var status = _a.status;\r\n return status === 'connected';\r\n };\r\n return FacebookComponent;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Observable_1 = __webpack_require__(2);\nvar fromEventPattern_1 = __webpack_require__(43);\nObservable_1.Observable.fromEventPattern = fromEventPattern_1.fromEventPattern;\n//# sourceMappingURL=fromEventPattern.js.map\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Subscriber_1 = __webpack_require__(5);\nvar rxSubscriber_1 = __webpack_require__(12);\nvar Observer_1 = __webpack_require__(17);\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {\n return nextOrObserver[rxSubscriber_1.rxSubscriber]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber_1.Subscriber(Observer_1.empty);\n }\n return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\nexports.toSubscriber = toSubscriber;\n//# sourceMappingURL=toSubscriber.js.map\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar errorObject_1 = __webpack_require__(16);\nvar tryCatchTarget;\nfunction tryCatcher() {\n try {\n return tryCatchTarget.apply(this, arguments);\n }\n catch (e) {\n errorObject_1.errorObject.e = e;\n return errorObject_1.errorObject;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\nexports.tryCatch = tryCatch;\n;\n//# sourceMappingURL=tryCatch.js.map\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nvar UnsubscriptionError = (function (_super) {\n __extends(UnsubscriptionError, _super);\n function UnsubscriptionError(errors) {\n _super.call(this);\n this.errors = errors;\n var err = Error.call(this, errors ?\n errors.length + \" errors occurred during unsubscription:\\n \" + errors.map(function (err, i) { return ((i + 1) + \") \" + err.toString()); }).join('\\n ') : '');\n this.name = err.name = 'UnsubscriptionError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return UnsubscriptionError;\n}(Error));\nexports.UnsubscriptionError = UnsubscriptionError;\n//# sourceMappingURL=UnsubscriptionError.js.map\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar FromEventPatternObservable_1 = __webpack_require__(44);\nexports.fromEventPattern = FromEventPatternObservable_1.FromEventPatternObservable.create;\n//# sourceMappingURL=fromEventPattern.js.map\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isFunction_1 = __webpack_require__(11);\nvar Observable_1 = __webpack_require__(2);\nvar Subscription_1 = __webpack_require__(7);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar FromEventPatternObservable = (function (_super) {\n __extends(FromEventPatternObservable, _super);\n function FromEventPatternObservable(addHandler, removeHandler, selector) {\n _super.call(this);\n this.addHandler = addHandler;\n this.removeHandler = removeHandler;\n this.selector = selector;\n }\n /**\n * Creates an Observable from an API based on addHandler/removeHandler\n * functions.\n *\n * Converts any addHandler/removeHandler API to an\n * Observable.\n *\n * \n *\n * Creates an Observable by using the `addHandler` and `removeHandler`\n * functions to add and remove the handlers, with an optional selector\n * function to project the event arguments to a result. The `addHandler` is\n * called when the output Observable is subscribed, and `removeHandler` is\n * called when the Subscription is unsubscribed.\n *\n * @example Emits clicks happening on the DOM document\n * function addClickHandler(handler) {\n * document.addEventListener('click', handler);\n * }\n *\n * function removeClickHandler(handler) {\n * document.removeEventListener('click', handler);\n * }\n *\n * var clicks = Rx.Observable.fromEventPattern(\n * addClickHandler,\n * removeClickHandler\n * );\n * clicks.subscribe(x => console.log(x));\n *\n * @see {@link from}\n * @see {@link fromEvent}\n *\n * @param {function(handler: Function): any} addHandler A function that takes\n * a `handler` function as argument and attaches it somehow to the actual\n * source of events.\n * @param {function(handler: Function, signal?: any): void} [removeHandler] An optional function that\n * takes a `handler` function as argument and removes it in case it was\n * previously attached using `addHandler`. if addHandler returns signal to teardown when remove,\n * removeHandler function will forward it.\n * @param {function(...args: any): T} [selector] An optional function to\n * post-process results. It takes the arguments from the event handler and\n * should return a single value.\n * @return {Observable}\n * @static true\n * @name fromEventPattern\n * @owner Observable\n */\n FromEventPatternObservable.create = function (addHandler, removeHandler, selector) {\n return new FromEventPatternObservable(addHandler, removeHandler, selector);\n };\n FromEventPatternObservable.prototype._subscribe = function (subscriber) {\n var _this = this;\n var removeHandler = this.removeHandler;\n var handler = !!this.selector ? function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n _this._callSelector(subscriber, args);\n } : function (e) { subscriber.next(e); };\n var retValue = this._callAddHandler(handler, subscriber);\n if (!isFunction_1.isFunction(removeHandler)) {\n return;\n }\n subscriber.add(new Subscription_1.Subscription(function () {\n //TODO: determine whether or not to forward to error handler\n removeHandler(handler, retValue);\n }));\n };\n FromEventPatternObservable.prototype._callSelector = function (subscriber, args) {\n try {\n var result = this.selector.apply(this, args);\n subscriber.next(result);\n }\n catch (e) {\n subscriber.error(e);\n }\n };\n FromEventPatternObservable.prototype._callAddHandler = function (handler, errorSubscriber) {\n try {\n return this.addHandler(handler) || null;\n }\n catch (e) {\n errorSubscriber.error(e);\n }\n };\n return FromEventPatternObservable;\n}(Observable_1.Observable));\nexports.FromEventPatternObservable = FromEventPatternObservable;\n//# sourceMappingURL=FromEventPatternObservable.js.map\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Observable_1 = __webpack_require__(2);\nvar filter_1 = __webpack_require__(46);\nObservable_1.Observable.prototype.filter = filter_1.filter;\n//# sourceMappingURL=filter.js.map\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = __webpack_require__(5);\n/* tslint:enable:max-line-length */\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.\n *\n * \n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * @example Emit only click events whose target was a DIV element\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var clicksOnDivs = clicks.filter(ev => ev.target.tagName === 'DIV');\n * clicksOnDivs.subscribe(x => console.log(x));\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of values from the source that were\n * allowed by the `predicate` function.\n * @method filter\n * @owner Observable\n */\nfunction filter(predicate, thisArg) {\n return this.lift(new FilterOperator(predicate, thisArg));\n}\nexports.filter = filter;\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar FilterSubscriber = (function (_super) {\n __extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n _super.call(this, destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n // the try catch block below is left specifically for\n // optimization and perf reasons. a tryCatcher is not necessary here.\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=filter.js.map\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Observable_1 = __webpack_require__(2);\nvar switchMap_1 = __webpack_require__(48);\nObservable_1.Observable.prototype.switchMap = switchMap_1.switchMap;\n//# sourceMappingURL=switchMap.js.map\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = __webpack_require__(19);\nvar subscribeToResult_1 = __webpack_require__(20);\n/* tslint:enable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link switch}.\n *\n * \n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * @example Rerun an interval Observable on every click event\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.switchMap((ev) => Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switch}\n * @see {@link switchMapTo}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and taking only the values from the most recently\n * projected inner Observable.\n * @method switchMap\n * @owner Observable\n */\nfunction switchMap(project, resultSelector) {\n return this.lift(new SwitchMapOperator(project, resultSelector));\n}\nexports.switchMap = switchMap;\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project, resultSelector) {\n this.project = project;\n this.resultSelector = resultSelector;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project, this.resultSelector));\n };\n return SwitchMapOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchMapSubscriber = (function (_super) {\n __extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project, resultSelector) {\n _super.call(this, destination);\n this.project = project;\n this.resultSelector = resultSelector;\n this.index = 0;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, result, value, index));\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (this.resultSelector) {\n this._tryNotifyNext(outerValue, innerValue, outerIndex, innerIndex);\n }\n else {\n this.destination.next(innerValue);\n }\n };\n SwitchMapSubscriber.prototype._tryNotifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n var result;\n try {\n result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.isArrayLike = (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArrayLike.js.map\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction isPromise(value) {\n return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\nexports.isPromise = isPromise;\n//# sourceMappingURL=isPromise.js.map\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(4);\nfunction symbolIteratorPonyfill(root) {\n var Symbol = root.Symbol;\n if (typeof Symbol === 'function') {\n if (!Symbol.iterator) {\n Symbol.iterator = Symbol('iterator polyfill');\n }\n return Symbol.iterator;\n }\n else {\n // [for Mozilla Gecko 27-35:](https://mzl.la/2ewE1zC)\n var Set_1 = root.Set;\n if (Set_1 && typeof new Set_1()['@@iterator'] === 'function') {\n return '@@iterator';\n }\n var Map_1 = root.Map;\n // required for compatability with es6-shim\n if (Map_1) {\n var keys = Object.getOwnPropertyNames(Map_1.prototype);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n // according to spec, Map.prototype[@@iterator] and Map.orototype.entries must be equal.\n if (key !== 'entries' && key !== 'size' && Map_1.prototype[key] === Map_1.prototype['entries']) {\n return key;\n }\n }\n }\n return '@@iterator';\n }\n}\nexports.symbolIteratorPonyfill = symbolIteratorPonyfill;\nexports.iterator = symbolIteratorPonyfill(root_1.root);\n/**\n * @deprecated use iterator instead\n */\nexports.$$iterator = exports.iterator;\n//# sourceMappingURL=iterator.js.map\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = __webpack_require__(5);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar InnerSubscriber = (function (_super) {\n __extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n _super.call(this);\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber_1.Subscriber));\nexports.InnerSubscriber = InnerSubscriber;\n//# sourceMappingURL=InnerSubscriber.js.map\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Observable_1 = __webpack_require__(2);\nvar switchMapTo_1 = __webpack_require__(54);\nObservable_1.Observable.prototype.switchMapTo = switchMapTo_1.switchMapTo;\n//# sourceMappingURL=switchMapTo.js.map\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = __webpack_require__(19);\nvar subscribeToResult_1 = __webpack_require__(20);\n/* tslint:enable:max-line-length */\n/**\n * Projects each source value to the same Observable which is flattened multiple\n * times with {@link switch} in the output Observable.\n *\n * It's like {@link switchMap}, but maps each value\n * always to the same inner Observable.\n *\n * \n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. The output Observables\n * emits values only from the most recently emitted instance of\n * `innerObservable`.\n *\n * @example Rerun an interval Observable on every click event\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.switchMapTo(Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMapTo}\n * @see {@link switch}\n * @see {@link switchMap}\n * @see {@link mergeMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable` (and optionally transformed through `resultSelector`) every\n * time a value is emitted on the source Observable, and taking only the values\n * from the most recently projected inner Observable.\n * @method switchMapTo\n * @owner Observable\n */\nfunction switchMapTo(innerObservable, resultSelector) {\n return this.lift(new SwitchMapToOperator(innerObservable, resultSelector));\n}\nexports.switchMapTo = switchMapTo;\nvar SwitchMapToOperator = (function () {\n function SwitchMapToOperator(observable, resultSelector) {\n this.observable = observable;\n this.resultSelector = resultSelector;\n }\n SwitchMapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapToSubscriber(subscriber, this.observable, this.resultSelector));\n };\n return SwitchMapToOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchMapToSubscriber = (function (_super) {\n __extends(SwitchMapToSubscriber, _super);\n function SwitchMapToSubscriber(destination, inner, resultSelector) {\n _super.call(this, destination);\n this.inner = inner;\n this.resultSelector = resultSelector;\n this.index = 0;\n }\n SwitchMapToSubscriber.prototype._next = function (value) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, this.inner, value, this.index++));\n };\n SwitchMapToSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapToSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapToSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapToSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n if (resultSelector) {\n this.tryResultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n else {\n destination.next(innerValue);\n }\n };\n SwitchMapToSubscriber.prototype.tryResultSelector = function (outerValue, innerValue, outerIndex, innerIndex) {\n var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n var result;\n try {\n result = resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n destination.next(result);\n };\n return SwitchMapToSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=switchMapTo.js.map\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = __webpack_require__(56);\nvar ObjectUnsubscribedError_1 = __webpack_require__(21);\n/**\n * @class BehaviorSubject\n */\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n _super.call(this);\n this._value = _value;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject_1.Subject));\nexports.BehaviorSubject = BehaviorSubject;\n//# sourceMappingURL=BehaviorSubject.js.map\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = __webpack_require__(2);\nvar Subscriber_1 = __webpack_require__(5);\nvar Subscription_1 = __webpack_require__(7);\nvar ObjectUnsubscribedError_1 = __webpack_require__(21);\nvar SubjectSubscription_1 = __webpack_require__(57);\nvar rxSubscriber_1 = __webpack_require__(12);\n/**\n * @class SubjectSubscriber\n */\nvar SubjectSubscriber = (function (_super) {\n __extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n _super.call(this, destination);\n this.destination = destination;\n }\n return SubjectSubscriber;\n}(Subscriber_1.Subscriber));\nexports.SubjectSubscriber = SubjectSubscriber;\n/**\n * @class Subject\n */\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n _super.call(this);\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n Subject.prototype[rxSubscriber_1.rxSubscriber] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription_1.Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription_1.Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription_1.SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable_1.Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable_1.Observable));\nexports.Subject = Subject;\n/**\n * @class AnonymousSubject\n */\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n _super.call(this);\n this.destination = destination;\n this.source = source;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription_1.Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexports.AnonymousSubject = AnonymousSubject;\n//# sourceMappingURL=Subject.js.map\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscription_1 = __webpack_require__(7);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SubjectSubscription = (function (_super) {\n __extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n _super.call(this);\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription_1.Subscription));\nexports.SubjectSubscription = SubjectSubscription;\n//# sourceMappingURL=SubjectSubscription.js.map\n\n/***/ }),\n/* 58 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = init;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__core_google_api__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__core_snap_auth__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__shared_log__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__shared_ui__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__shared_util__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__google_component__ = __webpack_require__(59);\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction init() {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var signInControl, $signUp, signUpControl, googleAuth, ex_1, message;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 3, , 4]);\r\n signInControl = __WEBPACK_IMPORTED_MODULE_5__shared_ui__[\"b\" /* ui */].controls.get(__WEBPACK_IMPORTED_MODULE_1__constants__[\"a\" /* AuthType */].Google);\r\n if (signInControl == null) {\r\n throw new Error(\"UI control not found for \\\"\" + __WEBPACK_IMPORTED_MODULE_1__constants__[\"a\" /* AuthType */].Google + \"\\\".\");\r\n }\r\n $signUp = signInControl.$.querySelector('.form-control__sign-up');\r\n if ($signUp == null) {\r\n throw new Error('Sign up button not found.');\r\n }\r\n signUpControl = new __WEBPACK_IMPORTED_MODULE_5__shared_ui__[\"a\" /* SignUpControl */]($signUp);\r\n // Load sdk\r\n return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_2__core_google_api__[\"a\" /* googleApi */].load('client:auth2')];\r\n case 1:\r\n // Load sdk\r\n _a.sent();\r\n return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_2__core_google_api__[\"a\" /* googleApi */].initAuth({\r\n client_id: __WEBPACK_IMPORTED_MODULE_1__constants__[\"d\" /* googleConfig */].CLIENT_ID,\r\n fetch_basic_profile: false,\r\n scope: __WEBPACK_IMPORTED_MODULE_1__constants__[\"d\" /* googleConfig */].SCOPE,\r\n })];\r\n case 2:\r\n googleAuth = (_a.sent()).googleAuth;\r\n return [2 /*return*/, new __WEBPACK_IMPORTED_MODULE_7__google_component__[\"a\" /* GoogleComponent */](googleAuth, __WEBPACK_IMPORTED_MODULE_3__core_snap_auth__, signInControl, signUpControl, __WEBPACK_IMPORTED_MODULE_5__shared_ui__[\"b\" /* ui */], __WEBPACK_IMPORTED_MODULE_4__shared_log__[\"a\" /* log */])];\r\n case 3:\r\n ex_1 = _a.sent();\r\n message = Object(__WEBPACK_IMPORTED_MODULE_6__shared_util__[\"b\" /* exceptionToMessage */])(ex_1);\r\n __WEBPACK_IMPORTED_MODULE_4__shared_log__[\"a\" /* log */].warn(message);\r\n __WEBPACK_IMPORTED_MODULE_4__shared_log__[\"a\" /* log */].sendError(message);\r\n throw new Error(message);\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return GoogleComponent; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(1);\n\r\n\r\nvar GoogleComponent = (function () {\r\n function GoogleComponent(googleAuth, snapAuth, signInControl, signUpControl, ui, log) {\r\n this.googleAuth = googleAuth;\r\n this.snapAuth = snapAuth;\r\n this.signInControl = signInControl;\r\n this.signUpControl = signUpControl;\r\n this.ui = ui;\r\n this.log = log;\r\n this.formName = 'alt';\r\n this.signInControl.hidden = false;\r\n this.signUpControl.hidden = true;\r\n // Already signed in\r\n if (this.googleAuth.isSignedIn.get()) {\r\n this.log.warn('Already signed in from Google... Signing out');\r\n this.googleAuth.signOut();\r\n }\r\n this.handleSignInInteraction = this.handleSignInInteraction.bind(this);\r\n this.handleSignUpInteraction = this.handleSignUpInteraction.bind(this);\r\n // Listen for click on sign in button\r\n this.signInControl.registerInteractionHandler('click', this.handleSignInInteraction);\r\n // Listen for click on sign up button\r\n this.signUpControl.registerInteractionHandler('click', this.handleSignUpInteraction);\r\n }\r\n GoogleComponent.prototype.handleSignInInteraction = function () {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n this.googleAuth.signIn().then(this.signIn.bind(this), this.handleGooglePopupError.bind(this));\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n GoogleComponent.prototype.handleSignUpInteraction = function () {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.googleAuth.isSignedIn.get()) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.signUp(this.googleAuth.currentUser.get())];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n GoogleComponent.prototype.handleGooglePopupError = function (response) {\r\n if (response == null || typeof response !== 'object') {\r\n return;\r\n }\r\n if (response.error === 'popup_blocked_by_browser') {\r\n this.setHelptext(undefined, new Map([['google', 'Popup blocked by browser']]));\r\n }\r\n };\r\n GoogleComponent.prototype.navigate = function (response) {\r\n var redirectUrl = response.headers.get(__WEBPACK_IMPORTED_MODULE_1__constants__[\"e\" /* headerNames */].REDIRECT_URL);\r\n window.location.href = redirectUrl || '/';\r\n };\r\n GoogleComponent.prototype.setHelptext = function (message, messages) {\r\n if (message === void 0) { message = ''; }\r\n this.ui.forms.setHelptext(new Map([[this.formName, message]]));\r\n this.ui.controls.setHelptext(messages);\r\n };\r\n GoogleComponent.prototype.signIn = function (googleUser) {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var response, ex_1, message;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n return [4 /*yield*/, this.snapAuth.signIn(__WEBPACK_IMPORTED_MODULE_1__constants__[\"a\" /* AuthType */].Google, {\r\n idToken: googleUser.getAuthResponse().id_token,\r\n })];\r\n case 1:\r\n response = _a.sent();\r\n this.googleAuth.signOut();\r\n this.navigate(response);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n ex_1 = _a.sent();\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n if (this.snapAuth.isAuthException(ex_1)) {\r\n this.setHelptext(ex_1.message, ex_1.controls);\r\n if (ex_1.code === __WEBPACK_IMPORTED_MODULE_1__constants__[\"b\" /* ErrorCode */].AccountDoesNotExist) {\r\n this.signUpControl.hidden = false;\r\n this.signUpControl.focus();\r\n }\r\n }\r\n else {\r\n this.setHelptext(\"Can't sign in\");\r\n message = typeof ex_1 === 'string' ? ex_1 : ex_1.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n return [3 /*break*/, 3];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n GoogleComponent.prototype.signUp = function (googleUser) {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var response, ex_2, message;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n return [4 /*yield*/, this.snapAuth.signUp(__WEBPACK_IMPORTED_MODULE_1__constants__[\"a\" /* AuthType */].Google, {\r\n idToken: googleUser.getAuthResponse().id_token,\r\n })];\r\n case 1:\r\n response = _a.sent();\r\n this.navigate(response);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n ex_2 = _a.sent();\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n if (this.snapAuth.isAuthException(ex_2)) {\r\n this.setHelptext(ex_2.message, ex_2.controls);\r\n }\r\n else {\r\n this.setHelptext(\"Can't sign up\");\r\n message = typeof ex_2 === 'string' ? ex_2 : ex_2.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n return [3 /*break*/, 3];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return GoogleComponent;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = init;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__core_snap_auth__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__shared_log__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__shared_ui__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__snap_component__ = __webpack_require__(61);\n\r\n\r\n\r\n\r\n\r\n\r\nfunction init() {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var signInForm, message;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n try {\r\n signInForm = __WEBPACK_IMPORTED_MODULE_4__shared_ui__[\"b\" /* ui */].forms.get(__WEBPACK_IMPORTED_MODULE_5__snap_component__[\"a\" /* SnapComponent */].formName);\r\n if (signInForm == null) {\r\n throw new Error(\"UI form not found for \\\"\" + __WEBPACK_IMPORTED_MODULE_5__snap_component__[\"a\" /* SnapComponent */].formName + \"\\\".\");\r\n }\r\n return [2 /*return*/, new __WEBPACK_IMPORTED_MODULE_5__snap_component__[\"a\" /* SnapComponent */](__WEBPACK_IMPORTED_MODULE_2__core_snap_auth__, signInForm, __WEBPACK_IMPORTED_MODULE_4__shared_ui__[\"b\" /* ui */], __WEBPACK_IMPORTED_MODULE_3__shared_log__[\"a\" /* log */], __WEBPACK_IMPORTED_MODULE_1__constants__[\"e\" /* headerNames */].REDIRECT_URL)];\r\n }\r\n catch (ex) {\r\n message = typeof ex === 'string' ? ex : ex.message;\r\n __WEBPACK_IMPORTED_MODULE_3__shared_log__[\"a\" /* log */].warn(message);\r\n __WEBPACK_IMPORTED_MODULE_3__shared_log__[\"a\" /* log */].sendError(message);\r\n throw new Error(message);\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n}\r\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SnapComponent; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(1);\n\r\n\r\nvar SnapComponent = (function () {\r\n function SnapComponent(snapAuth, signInForm, ui, log, REDIRECT_URL) {\r\n this.snapAuth = snapAuth;\r\n this.signInForm = signInForm;\r\n this.ui = ui;\r\n this.log = log;\r\n this.REDIRECT_URL = REDIRECT_URL;\r\n this.handleSignInInteraction = this.handleSignInInteraction.bind(this);\r\n this.signInForm.registerInteractionHandler('submit', this.handleSignInInteraction);\r\n }\r\n SnapComponent.prototype.handleSignInInteraction = function (evt) {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var data;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n evt.preventDefault();\r\n data = this.generateSignInData();\r\n this.signIn(data);\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n SnapComponent.prototype.navigate = function (response) {\r\n var redirectUrl = response.headers.get(this.REDIRECT_URL);\r\n window.location.href = redirectUrl || '/';\r\n };\r\n SnapComponent.prototype.setHelptext = function (message, messages) {\r\n if (message === void 0) { message = ''; }\r\n this.ui.forms.setHelptext(new Map([[SnapComponent.formName, message]]));\r\n this.ui.controls.setHelptext(messages);\r\n };\r\n SnapComponent.prototype.signIn = function (data) {\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](this, void 0, void 0, function () {\r\n var response, ex_1, message;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n return [4 /*yield*/, this.snapAuth.signIn(__WEBPACK_IMPORTED_MODULE_1__constants__[\"a\" /* AuthType */].Snap, data)];\r\n case 1:\r\n response = _a.sent();\r\n this.navigate(response);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n ex_1 = _a.sent();\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n this.signInForm.focus();\r\n if (this.snapAuth.isAuthException(ex_1)) {\r\n this.setHelptext(ex_1.message, ex_1.controls);\r\n }\r\n else {\r\n this.setHelptext(\"Can't sign in\");\r\n message = typeof ex_1 === 'string' ? ex_1 : ex_1.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n return [3 /*break*/, 3];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n SnapComponent.prototype.generateSignInData = function () {\r\n var _this = this;\r\n var $form = this.signInForm.$;\r\n var names = ['email', 'password', 'rememberEmail', 'returnUrl'];\r\n return names.reduce(function (acc, name) {\r\n acc[name] = _this.getValue(_this.getElement($form.elements, name));\r\n return acc;\r\n }, {});\r\n };\r\n SnapComponent.prototype.getElement = function (elements, name) {\r\n var element = elements.namedItem(name);\r\n return element instanceof NodeList ? element[0] : element;\r\n };\r\n SnapComponent.prototype.getValue = function (element) {\r\n if (element instanceof HTMLInputElement) {\r\n switch (element.type) {\r\n case 'checkbox':\r\n case 'radio':\r\n return element.checked;\r\n default:\r\n return element.value;\r\n }\r\n }\r\n };\r\n SnapComponent.formName = 'vanilla';\r\n return SnapComponent;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__core_facebook_api__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__core_google_api__ = __webpack_require__(22);\nvar _this = this;\r\n\r\n\r\n\r\n(function (window) { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](_this, void 0, void 0, function () {\r\n var _this = this;\r\n var fb, gapi;\r\n return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__core_facebook_api__[\"a\" /* facebookApi */].fb];\r\n case 1:\r\n fb = _a.sent();\r\n return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_2__core_google_api__[\"a\" /* googleApi */].gapi];\r\n case 2:\r\n gapi = _a.sent();\r\n window.signOutFacebook = function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](_this, void 0, void 0, function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__core_facebook_api__[\"a\" /* facebookApi */].graph('/me/permissions', 'delete')];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n }); }); };\r\n window.signOutGoogle = function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"b\" /* __awaiter */](_this, void 0, void 0, function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__[\"d\" /* __generator */](this, function (_a) {\r\n return [2 /*return*/, gapi.auth2.getAuthInstance().signOut()];\r\n }); }); }; // .disconnect();\r\n window.signOut = function () { return Promise.all([window.signOutFacebook(), window.signOutGoogle()]); };\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); })(window);\r\n\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// main.bundle.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 23);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 10b50d75ea37c3ad8838","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/tslib/tslib.es6.js\n// module id = 0\n// module chunks = 0","export enum AuthType {\r\n Snap = 'snapretail',\r\n Google = 'google',\r\n Facebook = 'facebook',\r\n}\r\n\r\nexport enum ErrorCode {\r\n Unknown = 0,\r\n AccountDoesNotExist = 6,\r\n RequirePreviousAuth = 7,\r\n}\r\n\r\nexport const headerNames = {\r\n AUTH_TYPE: 'X-SnapRetail-AuthType',\r\n PENDING_AUTH: 'X-SnapRetail-Pending-Auth',\r\n REDIRECT_URL: 'X-Redirect-Url',\r\n};\r\n\r\nexport const queryStrings = {\r\n RETURN_URL: 'ReturnUrl',\r\n REFERRER: 'referrer',\r\n IGNORE_WORKFLOW: 'ignoreWorkflow',\r\n};\r\n\r\nconst configElementDataSet = (document.querySelector('#sign-in') as HTMLElement).dataset;\r\n\r\nexport const googleConfig = {\r\n CLIENT_ID: configElementDataSet.googleOAuthClientId,\r\n SCOPE: 'profile email openid',\r\n};\r\n\r\nexport const facebookConfig = {\r\n APP_ID: configElementDataSet.facebookAppId,\r\n API_VERSION: 'v2.10',\r\n SCOPE: 'public_profile,email',\r\n};\r\n\r\nconst snap = (window as any).snap;\r\n\r\nexport const urls = {\r\n ERROR_LOGGING: snap.LOG_ERROR_URL,\r\n SNAP_SIGNIN: `${snap.RETAILER_API_URL}/accounts/SignIn`,\r\n SNAP_SIGNUP: `${snap.RETAILER_API_URL}/accounts`,\r\n};\r\n\r\nexport const selectors = {\r\n MASTER_CONTROL: '.sign-in__master-control',\r\n FORM: '.sign-in__form',\r\n FORM_HELPTEXT: '.sign-in__form__helptext',\r\n FORM_SUBMIT: '.sign-in__submit',\r\n CONTROL: '.form-control',\r\n CONTROL_INPUT: '.form-control__input',\r\n CONTROL_HELPTEXT: '.form-control__helptext',\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/constants.ts","\"use strict\";\nvar root_1 = require('./util/root');\nvar toSubscriber_1 = require('./util/toSubscriber');\nvar observable_1 = require('./symbol/observable');\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nvar Observable = (function () {\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to a {@link create} static factory, but most of the time it is\n * a library implementation, which defines what and when will be emitted by an Observable. This means that calling\n * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, that if `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where first function is equivalent\n * of a `next` method, second of an `error` method and third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whatever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a {@link Scheduler}.\n *\n * @example Subscribe with an Observer\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() { // We actually could just remove this method,\n * }, // since we do not really care about errors right now.\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example Subscribe with functions\n * let sum = 0;\n *\n * Rx.Observable.of(1, 2, 3)\n * .subscribe(\n * function(value) {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * function() {\n * console.log('Sum equals: ' + sum);\n * }\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example Cancel a subscription\n * const subscription = Rx.Observable.interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => console.log('completed!') // Will not be called, even\n * ); // when cancelling subscription\n *\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n *\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n if (operator) {\n operator.call(sink, this.source);\n }\n else {\n sink.add(this.source ? this._subscribe(sink) : this._trySubscribe(sink));\n }\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n sink.error(err);\n }\n };\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [PromiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n Observable.prototype.forEach = function (next, PromiseCtor) {\n var _this = this;\n if (!PromiseCtor) {\n if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {\n PromiseCtor = root_1.root.Rx.config.Promise;\n }\n else if (root_1.root.Promise) {\n PromiseCtor = root_1.root.Promise;\n }\n }\n if (!PromiseCtor) {\n throw new Error('no Promise impl found');\n }\n return new PromiseCtor(function (resolve, reject) {\n // Must be declared in a separate statement to avoid a RefernceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n var subscription;\n subscription = _this.subscribe(function (value) {\n if (subscription) {\n // if there is a subscription, then we can surmise\n // the next handling is asynchronous. Any errors thrown\n // need to be rejected explicitly and unsubscribe must be\n // called manually\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n }\n else {\n // if there is NO subscription, then we're getting a nexted\n // value synchronously during subscription. We can just call it.\n // If it errors, Observable's `subscribe` will ensure the\n // unsubscription logic is called, then synchronously rethrow the error.\n // After that, Promise will trap the error and send it\n // down the rejection path.\n next(value);\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n return this.source.subscribe(subscriber);\n };\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n Observable.prototype[observable_1.observable] = function () {\n return this;\n };\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n */\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexports.Observable = Observable;\n//# sourceMappingURL=Observable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Observable.js\n// module id = 2\n// module chunks = 0","export const noop = () => undefined;\r\n\r\nexport const pipe = (...functions: Array<(...args: any[]) => any>) =>\r\n (data: any) => functions.reduce((value, func) => func(value), data);\r\n\r\nexport function deferredValue(valueFn: () => T) {\r\n // tslint:disable-next-line:space-before-function-paren\r\n const generator = (function* () {\r\n const value = valueFn();\r\n while (true) {\r\n yield value;\r\n }\r\n })();\r\n\r\n return () => generator.next().value;\r\n}\r\n\r\nexport function exceptionToMessage(ex: any): string {\r\n return typeof ex === 'string' ? ex : JSON.stringify(ex, errorJsonReplacer);\r\n}\r\n\r\nfunction errorJsonReplacer(key: any, value: any) {\r\n return value instanceof Error ? value.toString() : value;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/util.ts","\"use strict\";\n// CommonJS / Node have global context exposed as \"global\" variable.\n// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake\n// the global \"global\" var for now.\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\nexports.root = _root;\n// Workaround Closure Compiler restriction: The body of a goog.module cannot use throw.\n// This is needed when used with angular/tsickle which inserts a goog.module statement.\n// Wrap in IIFE\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\n//# sourceMappingURL=root.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/root.js\n// module id = 4\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isFunction_1 = require('./util/isFunction');\nvar Subscription_1 = require('./Subscription');\nvar Observer_1 = require('./Observer');\nvar rxSubscriber_1 = require('./symbol/rxSubscriber');\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n function Subscriber(destinationOrNext, error, complete) {\n _super.call(this);\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = Observer_1.empty;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = Observer_1.empty;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.destination = destinationOrNext;\n this.destination.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n */\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached {@link Error}. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n return this;\n };\n return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n _super.call(this);\n this._parentSubscriber = _parentSubscriber;\n var next;\n var context = this;\n if (isFunction_1.isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== Observer_1.empty) {\n context = Object.create(observerOrNext);\n if (isFunction_1.isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._error) {\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n throw err;\n }\n else {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n throw err;\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=Subscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Subscriber.js\n// module id = 5\n// module chunks = 0","import {urls} from '../constants';\r\n\r\nexport interface LogService {\r\n info(...args: any[]): void;\r\n warn(...args: any[]): void;\r\n error(...args: any[]): void;\r\n sendError(message: string): void;\r\n}\r\n\r\nexport const log: LogService = {\r\n\r\n /* tslint:disable:no-console */\r\n info: (...args: any[]) => console.info(...args),\r\n warn: (...args: any[]) => console.warn(...args),\r\n error: (...args: any[]) => console.error(...args),\r\n /* tslint:enable:no-console */\r\n\r\n sendError(message: string) {\r\n const errorData = new FormData();\r\n errorData.append('url', window.location.href);\r\n errorData.append('message', message);\r\n\r\n fetch(urls.ERROR_LOGGING, {\r\n mode: 'no-cors',\r\n method: 'post',\r\n body: errorData,\r\n });\r\n },\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/log.ts","\"use strict\";\nvar isArray_1 = require('./util/isArray');\nvar isObject_1 = require('./util/isObject');\nvar isFunction_1 = require('./util/isFunction');\nvar tryCatch_1 = require('./util/tryCatch');\nvar errorObject_1 = require('./util/errorObject');\nvar UnsubscriptionError_1 = require('./util/UnsubscriptionError');\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nvar Subscription = (function () {\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n function Subscription(unsubscribe) {\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n this.closed = false;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n Subscription.prototype.unsubscribe = function () {\n var hasErrors = false;\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parent = null;\n this._parents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n var index = -1;\n var len = _parents ? _parents.length : 0;\n // if this._parent is null, then so is this._parents, and we\n // don't have to remove ourselves from any parent subscriptions.\n while (_parent) {\n _parent.remove(this);\n // if this._parents is null or index >= len,\n // then _parent is set to null, and the loop exits\n _parent = ++index < len && _parents[index] || null;\n }\n if (isFunction_1.isFunction(_unsubscribe)) {\n var trial = tryCatch_1.tryCatch(_unsubscribe).call(this);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n errors = errors || (errorObject_1.errorObject.e instanceof UnsubscriptionError_1.UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject_1.errorObject.e.errors) : [errorObject_1.errorObject.e]);\n }\n }\n if (isArray_1.isArray(_subscriptions)) {\n index = -1;\n len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject_1.isObject(sub)) {\n var trial = tryCatch_1.tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n errors = errors || [];\n var err = errorObject_1.errorObject.e;\n if (err instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n }\n if (hasErrors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n };\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n Subscription.prototype.add = function (teardown) {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n if (teardown === this) {\n return this;\n }\n var subscription = teardown;\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (typeof subscription._addParent !== 'function' /* quack quack */) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n var subscriptions = this._subscriptions || (this._subscriptions = []);\n subscriptions.push(subscription);\n subscription._addParent(this);\n return subscription;\n };\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.prototype._addParent = function (parent) {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n if (!_parent || _parent === parent) {\n // If we don't have a parent, or the new parent is the same as the\n // current parent, then set this._parent to the new parent.\n this._parent = parent;\n }\n else if (!_parents) {\n // If there's already one parent, but not multiple, allocate an Array to\n // store the rest of the parent Subscriptions.\n this._parents = [parent];\n }\n else if (_parents.indexOf(parent) === -1) {\n // Only add the new parent to the _parents list if it's not already there.\n _parents.push(parent);\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexports.Subscription = Subscription;\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Subscription.js\n// module id = 7\n// module chunks = 0","import {insertScript} from '../shared/script';\r\nimport {deferredValue} from '../shared/util';\r\n\r\nexport type FB = any;\r\n\r\nexport interface LoginStatus {\r\n authResponse?: AuthResponse;\r\n status: string;\r\n}\r\n\r\nexport interface AuthResponse {\r\n accessToken: string;\r\n userID: string;\r\n expiresIn: number;\r\n signedRequest: string;\r\n}\r\n\r\nconst libValue = deferredValue(() => new Promise(resolve => {\r\n (window as any).fbAsyncInit = () => resolve((window as any).FB);\r\n\r\n insertScript({\r\n src: 'https://connect.facebook.net/en_US/sdk.js',\r\n id: 'facebook-jssdk',\r\n async: true,\r\n defer: true,\r\n });\r\n}));\r\n\r\nexport const facebookApi = {\r\n get fb() {\r\n return libValue();\r\n },\r\n graph(...args: any[]): Promise {\r\n return new Promise(async resolve => (await facebookApi.fb).api(...args, resolve));\r\n },\r\n loginStatus(force = false): Promise {\r\n return new Promise(async resolve => (await facebookApi.fb).getLoginStatus(resolve, force));\r\n },\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/core/facebook-api.ts","import {AuthType, ErrorCode, headerNames, queryStrings, urls} from '../constants';\r\nimport {log} from '../shared/log';\r\n\r\nconst queryString = require('query-string');\r\n\r\nconst currentParams = queryString.parse(location.search);\r\n\r\nlet pendingAuth: string;\r\n\r\nexport interface SnapAuth {\r\n isAuthException(ex: any): ex is SnapAuthException;\r\n signIn(authType: AuthType, data?: {}): Promise;\r\n signUp(authType: AuthType, data?: {}): Promise;\r\n setPendingAuth(value: string): void;\r\n}\r\n\r\nexport class SnapAuthException {\r\n constructor(\r\n public message: string,\r\n public controls: Map = new Map(),\r\n public code = ErrorCode.Unknown,\r\n public response: Response | null = null,\r\n ) {}\r\n}\r\n\r\nexport function isAuthException(ex: any): ex is SnapAuthException {\r\n return ex instanceof SnapAuthException;\r\n}\r\n\r\nexport function setPendingAuth(value: string) {\r\n pendingAuth = value;\r\n}\r\n\r\nexport async function signIn(authType: AuthType, data?: {}) {\r\n const headers: any = {[headerNames.AUTH_TYPE]: authType};\r\n\r\n if (pendingAuth) {\r\n headers[headerNames.PENDING_AUTH] = pendingAuth;\r\n }\r\n\r\n const returnUrl = currentParams[queryStrings.RETURN_URL];\r\n if (returnUrl) {\r\n headers[headerNames.REDIRECT_URL] = returnUrl;\r\n }\r\n\r\n const response = await sendRequest(urls.SNAP_SIGNIN, data, headers);\r\n\r\n if (response.ok) {\r\n return response;\r\n }\r\n\r\n switch (response.status) {\r\n case 422:\r\n const body = await response.json();\r\n throw new SnapAuthException(body.message, mapDetails(body.details), body.code, response);\r\n default:\r\n throw unknownError(`Unexpected http response (${response.status}) ${await response.text()}`);\r\n }\r\n}\r\n\r\nexport async function signUp(authType: AuthType, data?: {}) {\r\n const url = attachReferrer(urls.SNAP_SIGNUP);\r\n const headers: any = {[headerNames.AUTH_TYPE]: authType};\r\n\r\n const ignoreWorkflow = queryStrings.IGNORE_WORKFLOW in currentParams;\r\n const returnUrl = currentParams[queryStrings.RETURN_URL];\r\n\r\n if (ignoreWorkflow && returnUrl) {\r\n headers[headerNames.REDIRECT_URL] = returnUrl;\r\n }\r\n\r\n const response = await sendRequest(url, data, headers);\r\n\r\n if (response.ok) {\r\n return response;\r\n }\r\n\r\n switch (response.status) {\r\n case 422:\r\n case 409:\r\n const body = await response.json();\r\n throw new SnapAuthException(body.message, mapDetails(body.details), body.code, response);\r\n default:\r\n throw unknownError(`Unexpected http response (${response.status}) ${await response.text()}`);\r\n }\r\n}\r\n\r\nfunction attachReferrer(url: string) {\r\n const referrer = getReferrer();\r\n if (!referrer) {\r\n return url;\r\n }\r\n\r\n const param = queryString.stringify({[queryStrings.REFERRER]: referrer});\r\n const queryDelimiter = url.indexOf('?') > -1 ? '&' : '?';\r\n return `${url}${queryDelimiter}${param}`;\r\n}\r\n\r\nfunction getReferrer() {\r\n let referrer = currentParams[queryStrings.REFERRER];\r\n if (Array.isArray(referrer)) {\r\n referrer = referrer[0];\r\n }\r\n return typeof referrer === 'string' ? referrer.trim() || undefined : undefined;\r\n}\r\n\r\nfunction mapDetails(details: Array<{key: string, message: string}>) {\r\n if (!Array.isArray(details)) {\r\n return;\r\n }\r\n\r\n return new Map(details.map(({key, message}) => [key, message] as [string, string]));\r\n}\r\n\r\nasync function sendRequest(url: string, data?: {}, headers = {}) {\r\n try {\r\n return await fetch(url, {\r\n credentials: 'include',\r\n method: 'post',\r\n headers: new Headers({'Content-Type': 'application/json', ...headers}),\r\n body: JSON.stringify(data),\r\n });\r\n } catch (ex) {\r\n throw unknownError(ex);\r\n }\r\n}\r\n\r\nfunction unknownError(message: string) {\r\n log.sendError(message);\r\n return new SnapAuthException(`Can't sign in`);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/core/snap-auth.ts","import {selectors} from '../../constants';\r\nimport {Components, SignInControl, SignInForm} from './components';\r\nimport {MasterControl} from './master-control';\r\n\r\nexport {SignUpControl} from './sign-up-control';\r\nexport {MasterControl, SignInControl, SignInForm};\r\n\r\nexport interface UiService {\r\n masterControl: MasterControl;\r\n forms: Components;\r\n controls: Components;\r\n}\r\n\r\nexport const ui: UiService = {\r\n masterControl: new MasterControl(selectors.MASTER_CONTROL),\r\n forms: new Components(selectors.FORM, el => new SignInForm(el)),\r\n controls: new Components(selectors.CONTROL, el => new SignInControl(el)),\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/ui/index.ts","\"use strict\";\nfunction isFunction(x) {\n return typeof x === 'function';\n}\nexports.isFunction = isFunction;\n//# sourceMappingURL=isFunction.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isFunction.js\n// module id = 11\n// module chunks = 0","\"use strict\";\nvar root_1 = require('../util/root');\nvar Symbol = root_1.root.Symbol;\nexports.rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') ?\n Symbol.for('rxSubscriber') : '@@rxSubscriber';\n/**\n * @deprecated use rxSubscriber instead\n */\nexports.$$rxSubscriber = exports.rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/symbol/rxSubscriber.js\n// module id = 12\n// module chunks = 0","function isEventProp(name: string) {\r\n return /^on/.test(name);\r\n}\r\n\r\nfunction extractEventName(name: string) {\r\n return name.slice(2).toLowerCase();\r\n}\r\n\r\nfunction setBooleanProp(target: any, name: string, value: boolean) {\r\n if (value) {\r\n target.setAttribute(name, value);\r\n target[name] = true;\r\n } else {\r\n target[name] = false;\r\n }\r\n}\r\n\r\nfunction setProp(target: Element, name: string, value: any) {\r\n if (isEventProp(name)) {\r\n target.addEventListener(extractEventName(name), value);\r\n } else if (typeof value === 'boolean') {\r\n setBooleanProp(target, name, value);\r\n } else {\r\n target.setAttribute(name, value);\r\n }\r\n}\r\n\r\nfunction setProps(target: Element, props: {[name: string]: any}) {\r\n Object.entries(props).forEach(([name, value]) => setProp(target, name, value));\r\n}\r\n\r\nexport function insertScript(props: {[name: string]: any}) {\r\n const script = document.createElement('script');\r\n setProps(script, props);\r\n const sibling = document.getElementsByTagName('script')[0];\r\n sibling.parentNode!.insertBefore(script, sibling);\r\n return script;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/script.ts","export abstract class Component {\r\n get $() {\r\n return this.$root;\r\n }\r\n\r\n get helptext() {\r\n const {$helptext} = this;\r\n return $helptext == null ? null : $helptext.textContent;\r\n }\r\n set helptext(text) {\r\n const {$helptext} = this;\r\n if ($helptext != null) {\r\n $helptext.textContent = text;\r\n } else {\r\n throw new Error(`Helptext element not found in component \"${this.name}\"`);\r\n }\r\n }\r\n\r\n readonly name: string;\r\n\r\n protected readonly $root: HTMLElement;\r\n protected readonly abstract $helptext: Element | null;\r\n\r\n constructor($root: HTMLElement) {\r\n this.$root = $root;\r\n this.name = this.$root.dataset.name || 'unknown';\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/ui/components/component.ts","\"use strict\";\nfunction isObject(x) {\n return x != null && typeof x === 'object';\n}\nexports.isObject = isObject;\n//# sourceMappingURL=isObject.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isObject.js\n// module id = 15\n// module chunks = 0","\"use strict\";\n// typeof any so that it we don't have to cast when comparing a result to the error object\nexports.errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/errorObject.js\n// module id = 16\n// module chunks = 0","\"use strict\";\nexports.empty = {\n closed: true,\n next: function (value) { },\n error: function (err) { throw err; },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Observer.js\n// module id = 17\n// module chunks = 0","\"use strict\";\nvar root_1 = require('../util/root');\nfunction getSymbolObservable(context) {\n var $$observable;\n var Symbol = context.Symbol;\n if (typeof Symbol === 'function') {\n if (Symbol.observable) {\n $$observable = Symbol.observable;\n }\n else {\n $$observable = Symbol('observable');\n Symbol.observable = $$observable;\n }\n }\n else {\n $$observable = '@@observable';\n }\n return $$observable;\n}\nexports.getSymbolObservable = getSymbolObservable;\nexports.observable = getSymbolObservable(root_1.root);\n/**\n * @deprecated use observable instead\n */\nexports.$$observable = exports.observable;\n//# sourceMappingURL=observable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/symbol/observable.js\n// module id = 18\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('./Subscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar OuterSubscriber = (function (_super) {\n __extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n _super.apply(this, arguments);\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber_1.Subscriber));\nexports.OuterSubscriber = OuterSubscriber;\n//# sourceMappingURL=OuterSubscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/OuterSubscriber.js\n// module id = 19\n// module chunks = 0","\"use strict\";\nvar root_1 = require('./root');\nvar isArrayLike_1 = require('./isArrayLike');\nvar isPromise_1 = require('./isPromise');\nvar isObject_1 = require('./isObject');\nvar Observable_1 = require('../Observable');\nvar iterator_1 = require('../symbol/iterator');\nvar InnerSubscriber_1 = require('../InnerSubscriber');\nvar observable_1 = require('../symbol/observable');\nfunction subscribeToResult(outerSubscriber, result, outerValue, outerIndex) {\n var destination = new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n if (destination.closed) {\n return null;\n }\n if (result instanceof Observable_1.Observable) {\n if (result._isScalar) {\n destination.next(result.value);\n destination.complete();\n return null;\n }\n else {\n return result.subscribe(destination);\n }\n }\n else if (isArrayLike_1.isArrayLike(result)) {\n for (var i = 0, len = result.length; i < len && !destination.closed; i++) {\n destination.next(result[i]);\n }\n if (!destination.closed) {\n destination.complete();\n }\n }\n else if (isPromise_1.isPromise(result)) {\n result.then(function (value) {\n if (!destination.closed) {\n destination.next(value);\n destination.complete();\n }\n }, function (err) { return destination.error(err); })\n .then(null, function (err) {\n // Escaping the Promise trap: globally throw unhandled errors\n root_1.root.setTimeout(function () { throw err; });\n });\n return destination;\n }\n else if (result && typeof result[iterator_1.iterator] === 'function') {\n var iterator = result[iterator_1.iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n destination.complete();\n break;\n }\n destination.next(item.value);\n if (destination.closed) {\n break;\n }\n } while (true);\n }\n else if (result && typeof result[observable_1.observable] === 'function') {\n var obs = result[observable_1.observable]();\n if (typeof obs.subscribe !== 'function') {\n destination.error(new TypeError('Provided object does not correctly implement Symbol.observable'));\n }\n else {\n return obs.subscribe(new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex));\n }\n }\n else {\n var value = isObject_1.isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = (\"You provided \" + value + \" where a stream was expected.\")\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n destination.error(new TypeError(msg));\n }\n return null;\n}\nexports.subscribeToResult = subscribeToResult;\n//# sourceMappingURL=subscribeToResult.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/subscribeToResult.js\n// module id = 20\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nvar ObjectUnsubscribedError = (function (_super) {\n __extends(ObjectUnsubscribedError, _super);\n function ObjectUnsubscribedError() {\n var err = _super.call(this, 'object unsubscribed');\n this.name = err.name = 'ObjectUnsubscribedError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return ObjectUnsubscribedError;\n}(Error));\nexports.ObjectUnsubscribedError = ObjectUnsubscribedError;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/ObjectUnsubscribedError.js\n// module id = 21\n// module chunks = 0","import {insertScript} from '../shared/script';\r\nimport {deferredValue} from '../shared/util';\r\n\r\nexport type gapi = any;\r\nexport type ClientConfig = any;\r\nexport type GoogleAuth = any;\r\nexport type GoogleUser = any;\r\n\r\nconst libValue = deferredValue(() => new Promise(resolve => {\r\n insertScript({\r\n src: 'https://apis.google.com/js/platform.js',\r\n onload: () => resolve((window as any).gapi),\r\n async: true,\r\n defer: true,\r\n });\r\n}));\r\n\r\nexport const googleApi = {\r\n get gapi() {\r\n return libValue();\r\n },\r\n load(libraries: string, timeout = 5000): Promise {\r\n return new Promise(async (resolve, reject) => (await googleApi.gapi).load(libraries, {\r\n callback: resolve,\r\n onerror: () => reject('gapi.client failed to load.'),\r\n ontimeout: () => reject('gapi.client timed out.'),\r\n timeout,\r\n }));\r\n },\r\n initAuth(params: ClientConfig): Promise<{googleAuth: GoogleAuth}> {\r\n // https://developers.google.com/identity/sign-in/web/reference#googleauththenoninit-onerror\r\n return new Promise(async (resolve, reject) => {\r\n (await googleApi.gapi).auth2.init(params)\r\n .then((googleAuth: GoogleAuth) => resolve({googleAuth}), reject);\r\n });\r\n },\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/core/google-api.ts","import 'whatwg-fetch';\r\n\r\nimport {init as initFacebook} from './components/facebook';\r\nimport {init as initGoogle} from './components/google';\r\nimport {init as initSnap} from './components/snap';\r\nimport {noop} from './shared/util';\r\n\r\nimport './_debug';\r\n\r\ninitSnap().catch(noop);\r\ninitGoogle().catch(noop);\r\ninitFacebook().catch(noop);\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/main.ts","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/whatwg-fetch/fetch.js\n// module id = 24\n// module chunks = 0","import {AuthType, facebookConfig} from '../constants';\r\nimport {facebookApi} from '../core/facebook-api';\r\nimport * as snapAuth from '../core/snap-auth';\r\nimport {log} from '../shared/log';\r\nimport {SignUpControl, ui} from '../shared/ui';\r\nimport {exceptionToMessage} from '../shared/util';\r\nimport {FacebookComponent} from './facebook.component';\r\n\r\nexport async function init() {\r\n try {\r\n const signInControl = ui.controls.get(AuthType.Facebook);\r\n\r\n if (signInControl == null) {\r\n throw new Error(`UI control not found for \"${AuthType.Facebook}\".`);\r\n }\r\n\r\n const $signUp = signInControl.$.querySelector('.form-control__sign-up');\r\n\r\n if ($signUp == null) {\r\n throw new Error('Sign up button not found.');\r\n }\r\n\r\n const signUpControl = new SignUpControl($signUp as HTMLButtonElement);\r\n\r\n // Load sdk\r\n const fb = await facebookApi.fb;\r\n\r\n // Initialize sdk\r\n fb.init({\r\n appId: facebookConfig.APP_ID,\r\n version: facebookConfig.API_VERSION,\r\n status: true,\r\n });\r\n\r\n return new FacebookComponent(fb, snapAuth, signInControl, signUpControl, ui, log, facebookConfig.SCOPE);\r\n\r\n } catch (ex) {\r\n const message = exceptionToMessage(ex);\r\n log.warn(message);\r\n log.sendError(message);\r\n throw new Error(message);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/components/facebook.ts","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\nvar decodeComponent = require('decode-uri-component');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t} else if (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeComponent(val);\n\n\t\tformatter(decodeComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/query-string/index.js\n// module id = 26\n// module chunks = 0","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/strict-uri-encode/index.js\n// module id = 27\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 28\n// module chunks = 0","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/decode-uri-component/index.js\n// module id = 29\n// module chunks = 0","import {deferredValue} from '../../util';\r\nimport {Component} from './component';\r\n\r\nexport class Components {\r\n private readonly componentsValue: () => Map;\r\n\r\n constructor(selector: string, componentFactory: (el: HTMLElement) => T) {\r\n this.componentsValue = deferredValue(() => {\r\n const $components = Array.from(document.querySelectorAll(selector)) as HTMLElement[];\r\n return new Map($components.map($component => {\r\n const instance = componentFactory($component);\r\n return [instance.name, instance] as [string, T];\r\n }));\r\n });\r\n }\r\n\r\n get(name: string) {\r\n return this.componentsValue().get(name);\r\n }\r\n\r\n setHelptext(values = new Map()) {\r\n this.componentsValue().forEach(component => {\r\n component.helptext = values.get(component.name) || '';\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/ui/components/components.ts","import {selectors} from '../../../constants';\r\nimport {Component} from './component';\r\n\r\nexport class SignInControl extends Component {\r\n get disabled() {\r\n return this.$input.disabled;\r\n }\r\n set disabled(value) {\r\n this.$input.disabled = value;\r\n }\r\n\r\n get hidden() {\r\n return this.$root.hidden;\r\n }\r\n set hidden(value) {\r\n this.$root.hidden = value;\r\n }\r\n\r\n protected get $helptext() {\r\n return this.$root.querySelector(selectors.CONTROL_HELPTEXT);\r\n }\r\n\r\n protected get $input() {\r\n const $input = this.$root.querySelector(selectors.CONTROL_INPUT);\r\n if ($input == null) {\r\n throw new Error(`Input element not found in component \"${this.name}\"`);\r\n }\r\n return $input as HTMLInputElement;\r\n }\r\n\r\n registerInteractionHandler(type: string, listener: EventListener) {\r\n this.$input.addEventListener(type, listener);\r\n }\r\n\r\n deregisterInteractionHandler(type: string, listener: EventListener) {\r\n this.$input.removeEventListener(type, listener);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/ui/components/sign-in-control.ts","import {selectors} from '../../../constants';\r\nimport {Component} from './component';\r\n\r\nexport class SignInForm extends Component {\r\n protected get $helptext() {\r\n return this.$root.querySelector(selectors.FORM_HELPTEXT);\r\n }\r\n\r\n focus() {\r\n const $submit = this.$root.querySelector(selectors.FORM_SUBMIT) as HTMLButtonElement;\r\n if ($submit != null) {\r\n return $submit.focus();\r\n }\r\n }\r\n\r\n registerInteractionHandler(type: string, listener: EventListener) {\r\n this.$root.addEventListener(type, listener);\r\n }\r\n\r\n deregisterInteractionHandler(type: string, listener: EventListener) {\r\n this.$root.removeEventListener(type, listener);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/ui/components/sign-in-form.ts","const classNames = {\r\n INITIALIZED: 'sign-in__master-control--initialized',\r\n PROGRESS_CLOSED: 'mdc-linear-progress--closed',\r\n};\r\n\r\nconst selectors = {\r\n PROGRESS: '.mdc-linear-progress',\r\n};\r\n\r\nexport class MasterControl {\r\n get disabled() {\r\n return this.$element.disabled;\r\n }\r\n set disabled(value) {\r\n this.$element.disabled = value;\r\n }\r\n\r\n get progress() {\r\n return this.$progress.classList.contains(classNames.PROGRESS_CLOSED);\r\n }\r\n set progress(value) {\r\n if (value) {\r\n this.$progress.classList.remove(classNames.PROGRESS_CLOSED);\r\n this.$progress.setAttribute('aria-hidden', 'false');\r\n } else {\r\n this.$progress.classList.add(classNames.PROGRESS_CLOSED);\r\n this.$progress.setAttribute('aria-hidden', 'true');\r\n }\r\n }\r\n\r\n private readonly $element: HTMLFieldSetElement;\r\n private readonly $progress: HTMLElement;\r\n\r\n constructor(selector: string) {\r\n this.$element = document.querySelector(selector) as HTMLFieldSetElement;\r\n\r\n if (this.$element == null) {\r\n throw new Error('Master control element not found.');\r\n }\r\n\r\n this.$progress = this.$element.querySelector(selectors.PROGRESS) as HTMLElement;\r\n\r\n if (this.$progress == null) {\r\n throw new Error('Progress element not found in master control.');\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.progress = false;\r\n this.$element.classList.add(classNames.INITIALIZED);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/ui/master-control.ts","export class SignUpControl {\r\n get disabled() {\r\n return this.$element.disabled;\r\n }\r\n set disabled(value) {\r\n this.$element.disabled = value;\r\n }\r\n\r\n get hidden() {\r\n return this.$element.hidden;\r\n }\r\n set hidden(value) {\r\n this.$element.hidden = value;\r\n }\r\n\r\n constructor(private readonly $element: HTMLButtonElement) {}\r\n\r\n focus() {\r\n this.$element.focus();\r\n }\r\n\r\n registerInteractionHandler(type: string, listener: EventListener) {\r\n this.$element.addEventListener(type, listener);\r\n }\r\n\r\n deregisterInteractionHandler(type: string, listener: EventListener) {\r\n this.$element.removeEventListener(type, listener);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/shared/ui/sign-up-control.ts","import 'rxjs/add/observable/fromEventPattern';\r\nimport 'rxjs/add/operator/filter';\r\nimport 'rxjs/add/operator/switchMap';\r\nimport 'rxjs/add/operator/switchMapTo';\r\nimport {BehaviorSubject} from 'rxjs/BehaviorSubject';\r\nimport {Observable} from 'rxjs/Observable';\r\n\r\nimport {AuthType, ErrorCode, headerNames} from '../constants';\r\nimport {facebookApi, FB, LoginStatus} from '../core/facebook-api';\r\nimport {SnapAuth} from '../core/snap-auth';\r\nimport {LogService} from '../shared/log';\r\nimport {SignInControl, SignUpControl, UiService} from '../shared/ui';\r\n\r\nexport class FacebookComponent {\r\n private readonly formName = 'alt';\r\n\r\n private readonly status$ = new BehaviorSubject({status: ''});\r\n\r\n constructor(\r\n private readonly fb: FB,\r\n private readonly snapAuth: SnapAuth,\r\n private readonly signInControl: SignInControl,\r\n private readonly signUpControl: SignUpControl,\r\n private readonly ui: UiService,\r\n private readonly log: LogService,\r\n private readonly SCOPE: string,\r\n ) {\r\n this.signInControl.hidden = false;\r\n this.signUpControl.hidden = true;\r\n\r\n this.handleSignUpInteraction = this.handleSignUpInteraction.bind(this);\r\n this.listenForControlInteraction = this.listenForControlInteraction.bind(this);\r\n this.listenForStatusChange = this.listenForStatusChange.bind(this);\r\n this.signIn = this.signIn.bind(this);\r\n\r\n Observable.fromEventPattern(this.listenForStatusChange)\r\n .subscribe(this.status$);\r\n\r\n Observable.fromEventPattern(this.listenForControlInteraction)\r\n .switchMapTo(this.status$)\r\n .switchMap(this.signIntoFacebook({scope: this.SCOPE}))\r\n .filter(FacebookComponent.isConnected)\r\n .subscribe(this.signIn);\r\n\r\n // Listen for click on sign up button\r\n this.signUpControl.registerInteractionHandler('click', this.handleSignUpInteraction);\r\n }\r\n\r\n private async handleSignUpInteraction() {\r\n const loginStatus = await facebookApi.loginStatus();\r\n if (FacebookComponent.isConnected(loginStatus)) {\r\n await this.signUp(loginStatus);\r\n }\r\n }\r\n\r\n private listenForControlInteraction(handler: () => void) {\r\n this.signInControl.registerInteractionHandler('click', handler);\r\n }\r\n\r\n private listenForStatusChange(handler: (loginStatus: LoginStatus) => void) {\r\n this.fb.Event.subscribe('auth.statusChange', handler);\r\n }\r\n\r\n private navigate(response: Response) {\r\n const redirectUrl = response.headers.get(headerNames.REDIRECT_URL);\r\n window.location.href = redirectUrl || '/';\r\n }\r\n\r\n private setHelptext(message = '', messages?: Map) {\r\n this.ui.forms.setHelptext(new Map([[this.formName, message]]));\r\n this.ui.controls.setHelptext(messages);\r\n }\r\n\r\n private async signIn(loginStatus: LoginStatus) {\r\n try {\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n\r\n const response = await this.snapAuth.signIn(AuthType.Facebook, loginStatus.authResponse);\r\n\r\n this.navigate(response);\r\n\r\n } catch (ex) {\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n\r\n if (this.snapAuth.isAuthException(ex)) {\r\n this.setHelptext(ex.message, ex.controls);\r\n\r\n if (ex.code === ErrorCode.AccountDoesNotExist) {\r\n this.signUpControl.hidden = false;\r\n this.signUpControl.focus();\r\n }\r\n\r\n if (ex.code === ErrorCode.RequirePreviousAuth && ex.response != null) {\r\n const pendingAuth = ex.response.headers.get(headerNames.PENDING_AUTH);\r\n this.snapAuth.setPendingAuth(pendingAuth || '');\r\n }\r\n\r\n } else {\r\n this.setHelptext(`Can't sign in`);\r\n const message = typeof ex === 'string' ? ex : ex.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n }\r\n }\r\n\r\n private async signUp(loginStatus: LoginStatus) {\r\n try {\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n\r\n const response = await this.snapAuth.signUp(AuthType.Facebook, loginStatus.authResponse);\r\n\r\n this.navigate(response);\r\n\r\n } catch (ex) {\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n\r\n if (this.snapAuth.isAuthException(ex)) {\r\n this.setHelptext(ex.message, ex.controls);\r\n\r\n } else {\r\n this.setHelptext(`Can't sign up`);\r\n const message = typeof ex === 'string' ? ex : ex.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n }\r\n }\r\n\r\n private signIntoFacebook(options = {}) {\r\n return (loginStatus: LoginStatus) => {\r\n return FacebookComponent.isConnected(loginStatus) ?\r\n Promise.resolve(loginStatus) :\r\n new Promise(resolve => this.fb.login(resolve, options));\r\n };\r\n }\r\n\r\n private static isConnected({status}: LoginStatus) {\r\n return status === 'connected';\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/components/facebook.component.ts","\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar fromEventPattern_1 = require('../../observable/fromEventPattern');\nObservable_1.Observable.fromEventPattern = fromEventPattern_1.fromEventPattern;\n//# sourceMappingURL=fromEventPattern.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/add/observable/fromEventPattern.js\n// module id = 37\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 38\n// module chunks = 0","\"use strict\";\nvar Subscriber_1 = require('../Subscriber');\nvar rxSubscriber_1 = require('../symbol/rxSubscriber');\nvar Observer_1 = require('../Observer');\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {\n return nextOrObserver[rxSubscriber_1.rxSubscriber]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber_1.Subscriber(Observer_1.empty);\n }\n return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\nexports.toSubscriber = toSubscriber;\n//# sourceMappingURL=toSubscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/toSubscriber.js\n// module id = 39\n// module chunks = 0","\"use strict\";\nexports.isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isArray.js\n// module id = 40\n// module chunks = 0","\"use strict\";\nvar errorObject_1 = require('./errorObject');\nvar tryCatchTarget;\nfunction tryCatcher() {\n try {\n return tryCatchTarget.apply(this, arguments);\n }\n catch (e) {\n errorObject_1.errorObject.e = e;\n return errorObject_1.errorObject;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\nexports.tryCatch = tryCatch;\n;\n//# sourceMappingURL=tryCatch.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/tryCatch.js\n// module id = 41\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nvar UnsubscriptionError = (function (_super) {\n __extends(UnsubscriptionError, _super);\n function UnsubscriptionError(errors) {\n _super.call(this);\n this.errors = errors;\n var err = Error.call(this, errors ?\n errors.length + \" errors occurred during unsubscription:\\n \" + errors.map(function (err, i) { return ((i + 1) + \") \" + err.toString()); }).join('\\n ') : '');\n this.name = err.name = 'UnsubscriptionError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return UnsubscriptionError;\n}(Error));\nexports.UnsubscriptionError = UnsubscriptionError;\n//# sourceMappingURL=UnsubscriptionError.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/UnsubscriptionError.js\n// module id = 42\n// module chunks = 0","\"use strict\";\nvar FromEventPatternObservable_1 = require('./FromEventPatternObservable');\nexports.fromEventPattern = FromEventPatternObservable_1.FromEventPatternObservable.create;\n//# sourceMappingURL=fromEventPattern.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/fromEventPattern.js\n// module id = 43\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isFunction_1 = require('../util/isFunction');\nvar Observable_1 = require('../Observable');\nvar Subscription_1 = require('../Subscription');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar FromEventPatternObservable = (function (_super) {\n __extends(FromEventPatternObservable, _super);\n function FromEventPatternObservable(addHandler, removeHandler, selector) {\n _super.call(this);\n this.addHandler = addHandler;\n this.removeHandler = removeHandler;\n this.selector = selector;\n }\n /**\n * Creates an Observable from an API based on addHandler/removeHandler\n * functions.\n *\n * Converts any addHandler/removeHandler API to an\n * Observable.\n *\n * \n *\n * Creates an Observable by using the `addHandler` and `removeHandler`\n * functions to add and remove the handlers, with an optional selector\n * function to project the event arguments to a result. The `addHandler` is\n * called when the output Observable is subscribed, and `removeHandler` is\n * called when the Subscription is unsubscribed.\n *\n * @example Emits clicks happening on the DOM document\n * function addClickHandler(handler) {\n * document.addEventListener('click', handler);\n * }\n *\n * function removeClickHandler(handler) {\n * document.removeEventListener('click', handler);\n * }\n *\n * var clicks = Rx.Observable.fromEventPattern(\n * addClickHandler,\n * removeClickHandler\n * );\n * clicks.subscribe(x => console.log(x));\n *\n * @see {@link from}\n * @see {@link fromEvent}\n *\n * @param {function(handler: Function): any} addHandler A function that takes\n * a `handler` function as argument and attaches it somehow to the actual\n * source of events.\n * @param {function(handler: Function, signal?: any): void} [removeHandler] An optional function that\n * takes a `handler` function as argument and removes it in case it was\n * previously attached using `addHandler`. if addHandler returns signal to teardown when remove,\n * removeHandler function will forward it.\n * @param {function(...args: any): T} [selector] An optional function to\n * post-process results. It takes the arguments from the event handler and\n * should return a single value.\n * @return {Observable}\n * @static true\n * @name fromEventPattern\n * @owner Observable\n */\n FromEventPatternObservable.create = function (addHandler, removeHandler, selector) {\n return new FromEventPatternObservable(addHandler, removeHandler, selector);\n };\n FromEventPatternObservable.prototype._subscribe = function (subscriber) {\n var _this = this;\n var removeHandler = this.removeHandler;\n var handler = !!this.selector ? function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n _this._callSelector(subscriber, args);\n } : function (e) { subscriber.next(e); };\n var retValue = this._callAddHandler(handler, subscriber);\n if (!isFunction_1.isFunction(removeHandler)) {\n return;\n }\n subscriber.add(new Subscription_1.Subscription(function () {\n //TODO: determine whether or not to forward to error handler\n removeHandler(handler, retValue);\n }));\n };\n FromEventPatternObservable.prototype._callSelector = function (subscriber, args) {\n try {\n var result = this.selector.apply(this, args);\n subscriber.next(result);\n }\n catch (e) {\n subscriber.error(e);\n }\n };\n FromEventPatternObservable.prototype._callAddHandler = function (handler, errorSubscriber) {\n try {\n return this.addHandler(handler) || null;\n }\n catch (e) {\n errorSubscriber.error(e);\n }\n };\n return FromEventPatternObservable;\n}(Observable_1.Observable));\nexports.FromEventPatternObservable = FromEventPatternObservable;\n//# sourceMappingURL=FromEventPatternObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/FromEventPatternObservable.js\n// module id = 44\n// module chunks = 0","\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar filter_1 = require('../../operator/filter');\nObservable_1.Observable.prototype.filter = filter_1.filter;\n//# sourceMappingURL=filter.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/add/operator/filter.js\n// module id = 45\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/* tslint:enable:max-line-length */\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.\n *\n * \n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * @example Emit only click events whose target was a DIV element\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var clicksOnDivs = clicks.filter(ev => ev.target.tagName === 'DIV');\n * clicksOnDivs.subscribe(x => console.log(x));\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of values from the source that were\n * allowed by the `predicate` function.\n * @method filter\n * @owner Observable\n */\nfunction filter(predicate, thisArg) {\n return this.lift(new FilterOperator(predicate, thisArg));\n}\nexports.filter = filter;\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar FilterSubscriber = (function (_super) {\n __extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n _super.call(this, destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n // the try catch block below is left specifically for\n // optimization and perf reasons. a tryCatcher is not necessary here.\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=filter.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operator/filter.js\n// module id = 46\n// module chunks = 0","\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar switchMap_1 = require('../../operator/switchMap');\nObservable_1.Observable.prototype.switchMap = switchMap_1.switchMap;\n//# sourceMappingURL=switchMap.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/add/operator/switchMap.js\n// module id = 47\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:enable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link switch}.\n *\n * \n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * @example Rerun an interval Observable on every click event\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.switchMap((ev) => Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switch}\n * @see {@link switchMapTo}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and taking only the values from the most recently\n * projected inner Observable.\n * @method switchMap\n * @owner Observable\n */\nfunction switchMap(project, resultSelector) {\n return this.lift(new SwitchMapOperator(project, resultSelector));\n}\nexports.switchMap = switchMap;\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project, resultSelector) {\n this.project = project;\n this.resultSelector = resultSelector;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project, this.resultSelector));\n };\n return SwitchMapOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchMapSubscriber = (function (_super) {\n __extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project, resultSelector) {\n _super.call(this, destination);\n this.project = project;\n this.resultSelector = resultSelector;\n this.index = 0;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, result, value, index));\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (this.resultSelector) {\n this._tryNotifyNext(outerValue, innerValue, outerIndex, innerIndex);\n }\n else {\n this.destination.next(innerValue);\n }\n };\n SwitchMapSubscriber.prototype._tryNotifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n var result;\n try {\n result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operator/switchMap.js\n// module id = 48\n// module chunks = 0","\"use strict\";\nexports.isArrayLike = (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArrayLike.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isArrayLike.js\n// module id = 49\n// module chunks = 0","\"use strict\";\nfunction isPromise(value) {\n return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\nexports.isPromise = isPromise;\n//# sourceMappingURL=isPromise.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isPromise.js\n// module id = 50\n// module chunks = 0","\"use strict\";\nvar root_1 = require('../util/root');\nfunction symbolIteratorPonyfill(root) {\n var Symbol = root.Symbol;\n if (typeof Symbol === 'function') {\n if (!Symbol.iterator) {\n Symbol.iterator = Symbol('iterator polyfill');\n }\n return Symbol.iterator;\n }\n else {\n // [for Mozilla Gecko 27-35:](https://mzl.la/2ewE1zC)\n var Set_1 = root.Set;\n if (Set_1 && typeof new Set_1()['@@iterator'] === 'function') {\n return '@@iterator';\n }\n var Map_1 = root.Map;\n // required for compatability with es6-shim\n if (Map_1) {\n var keys = Object.getOwnPropertyNames(Map_1.prototype);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n // according to spec, Map.prototype[@@iterator] and Map.orototype.entries must be equal.\n if (key !== 'entries' && key !== 'size' && Map_1.prototype[key] === Map_1.prototype['entries']) {\n return key;\n }\n }\n }\n return '@@iterator';\n }\n}\nexports.symbolIteratorPonyfill = symbolIteratorPonyfill;\nexports.iterator = symbolIteratorPonyfill(root_1.root);\n/**\n * @deprecated use iterator instead\n */\nexports.$$iterator = exports.iterator;\n//# sourceMappingURL=iterator.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/symbol/iterator.js\n// module id = 51\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('./Subscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar InnerSubscriber = (function (_super) {\n __extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n _super.call(this);\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber_1.Subscriber));\nexports.InnerSubscriber = InnerSubscriber;\n//# sourceMappingURL=InnerSubscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/InnerSubscriber.js\n// module id = 52\n// module chunks = 0","\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar switchMapTo_1 = require('../../operator/switchMapTo');\nObservable_1.Observable.prototype.switchMapTo = switchMapTo_1.switchMapTo;\n//# sourceMappingURL=switchMapTo.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/add/operator/switchMapTo.js\n// module id = 53\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:enable:max-line-length */\n/**\n * Projects each source value to the same Observable which is flattened multiple\n * times with {@link switch} in the output Observable.\n *\n * It's like {@link switchMap}, but maps each value\n * always to the same inner Observable.\n *\n * \n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. The output Observables\n * emits values only from the most recently emitted instance of\n * `innerObservable`.\n *\n * @example Rerun an interval Observable on every click event\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.switchMapTo(Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMapTo}\n * @see {@link switch}\n * @see {@link switchMap}\n * @see {@link mergeMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable` (and optionally transformed through `resultSelector`) every\n * time a value is emitted on the source Observable, and taking only the values\n * from the most recently projected inner Observable.\n * @method switchMapTo\n * @owner Observable\n */\nfunction switchMapTo(innerObservable, resultSelector) {\n return this.lift(new SwitchMapToOperator(innerObservable, resultSelector));\n}\nexports.switchMapTo = switchMapTo;\nvar SwitchMapToOperator = (function () {\n function SwitchMapToOperator(observable, resultSelector) {\n this.observable = observable;\n this.resultSelector = resultSelector;\n }\n SwitchMapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapToSubscriber(subscriber, this.observable, this.resultSelector));\n };\n return SwitchMapToOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchMapToSubscriber = (function (_super) {\n __extends(SwitchMapToSubscriber, _super);\n function SwitchMapToSubscriber(destination, inner, resultSelector) {\n _super.call(this, destination);\n this.inner = inner;\n this.resultSelector = resultSelector;\n this.index = 0;\n }\n SwitchMapToSubscriber.prototype._next = function (value) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, this.inner, value, this.index++));\n };\n SwitchMapToSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapToSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapToSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapToSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n if (resultSelector) {\n this.tryResultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n else {\n destination.next(innerValue);\n }\n };\n SwitchMapToSubscriber.prototype.tryResultSelector = function (outerValue, innerValue, outerIndex, innerIndex) {\n var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n var result;\n try {\n result = resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n destination.next(result);\n };\n return SwitchMapToSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=switchMapTo.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operator/switchMapTo.js\n// module id = 54\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('./Subject');\nvar ObjectUnsubscribedError_1 = require('./util/ObjectUnsubscribedError');\n/**\n * @class BehaviorSubject\n */\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n _super.call(this);\n this._value = _value;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject_1.Subject));\nexports.BehaviorSubject = BehaviorSubject;\n//# sourceMappingURL=BehaviorSubject.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/BehaviorSubject.js\n// module id = 55\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('./Observable');\nvar Subscriber_1 = require('./Subscriber');\nvar Subscription_1 = require('./Subscription');\nvar ObjectUnsubscribedError_1 = require('./util/ObjectUnsubscribedError');\nvar SubjectSubscription_1 = require('./SubjectSubscription');\nvar rxSubscriber_1 = require('./symbol/rxSubscriber');\n/**\n * @class SubjectSubscriber\n */\nvar SubjectSubscriber = (function (_super) {\n __extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n _super.call(this, destination);\n this.destination = destination;\n }\n return SubjectSubscriber;\n}(Subscriber_1.Subscriber));\nexports.SubjectSubscriber = SubjectSubscriber;\n/**\n * @class Subject\n */\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n _super.call(this);\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n Subject.prototype[rxSubscriber_1.rxSubscriber] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription_1.Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription_1.Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription_1.SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable_1.Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable_1.Observable));\nexports.Subject = Subject;\n/**\n * @class AnonymousSubject\n */\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n _super.call(this);\n this.destination = destination;\n this.source = source;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription_1.Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexports.AnonymousSubject = AnonymousSubject;\n//# sourceMappingURL=Subject.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Subject.js\n// module id = 56\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscription_1 = require('./Subscription');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SubjectSubscription = (function (_super) {\n __extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n _super.call(this);\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription_1.Subscription));\nexports.SubjectSubscription = SubjectSubscription;\n//# sourceMappingURL=SubjectSubscription.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/SubjectSubscription.js\n// module id = 57\n// module chunks = 0","import {AuthType, googleConfig} from '../constants';\r\nimport {googleApi} from '../core/google-api';\r\nimport * as snapAuth from '../core/snap-auth';\r\nimport {log} from '../shared/log';\r\nimport {SignUpControl, ui} from '../shared/ui';\r\nimport {exceptionToMessage} from '../shared/util';\r\nimport {GoogleComponent} from './google.component';\r\n\r\nexport async function init() {\r\n try {\r\n const signInControl = ui.controls.get(AuthType.Google);\r\n\r\n if (signInControl == null) {\r\n throw new Error(`UI control not found for \"${AuthType.Google}\".`);\r\n }\r\n\r\n const $signUp = signInControl.$.querySelector('.form-control__sign-up');\r\n\r\n if ($signUp == null) {\r\n throw new Error('Sign up button not found.');\r\n }\r\n\r\n const signUpControl = new SignUpControl($signUp as HTMLButtonElement);\r\n\r\n // Load sdk\r\n await googleApi.load('client:auth2');\r\n\r\n // Initialize GoogleAuth\r\n const {googleAuth} = await googleApi.initAuth({\r\n client_id: googleConfig.CLIENT_ID,\r\n fetch_basic_profile: false,\r\n scope: googleConfig.SCOPE,\r\n });\r\n\r\n return new GoogleComponent(googleAuth, snapAuth, signInControl, signUpControl, ui, log);\r\n\r\n } catch (ex) {\r\n const message = exceptionToMessage(ex);\r\n log.warn(message);\r\n log.sendError(message);\r\n throw new Error(message);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/components/google.ts","import {AuthType, ErrorCode, headerNames} from '../constants';\r\nimport {GoogleAuth, GoogleUser} from '../core/google-api';\r\nimport {SnapAuth} from '../core/snap-auth';\r\nimport {LogService} from '../shared/log';\r\nimport {SignInControl, SignUpControl, UiService} from '../shared/ui';\r\n\r\nexport class GoogleComponent {\r\n private readonly formName = 'alt';\r\n\r\n constructor(\r\n private readonly googleAuth: GoogleAuth,\r\n private readonly snapAuth: SnapAuth,\r\n private readonly signInControl: SignInControl,\r\n private readonly signUpControl: SignUpControl,\r\n private readonly ui: UiService,\r\n private readonly log: LogService,\r\n ) {\r\n this.signInControl.hidden = false;\r\n this.signUpControl.hidden = true;\r\n\r\n // Already signed in\r\n if (this.googleAuth.isSignedIn.get()) {\r\n this.log.warn('Already signed in from Google... Signing out');\r\n this.googleAuth.signOut();\r\n }\r\n\r\n this.handleSignInInteraction = this.handleSignInInteraction.bind(this);\r\n this.handleSignUpInteraction = this.handleSignUpInteraction.bind(this);\r\n\r\n // Listen for click on sign in button\r\n this.signInControl.registerInteractionHandler('click', this.handleSignInInteraction);\r\n\r\n // Listen for click on sign up button\r\n this.signUpControl.registerInteractionHandler('click', this.handleSignUpInteraction);\r\n }\r\n\r\n private async handleSignInInteraction() {\r\n this.googleAuth.signIn().then(this.signIn.bind(this), this.handleGooglePopupError.bind(this));\r\n }\r\n\r\n private async handleSignUpInteraction() {\r\n if (this.googleAuth.isSignedIn.get()) {\r\n await this.signUp(this.googleAuth.currentUser.get());\r\n }\r\n }\r\n\r\n private handleGooglePopupError(response: any) {\r\n if (response == null || typeof response !== 'object') {\r\n return;\r\n }\r\n\r\n if (response.error === 'popup_blocked_by_browser') {\r\n this.setHelptext(undefined, new Map([['google', 'Popup blocked by browser']]));\r\n }\r\n }\r\n\r\n private navigate(response: Response) {\r\n const redirectUrl = response.headers.get(headerNames.REDIRECT_URL);\r\n window.location.href = redirectUrl || '/';\r\n }\r\n\r\n private setHelptext(message = '', messages?: Map) {\r\n this.ui.forms.setHelptext(new Map([[this.formName, message]]));\r\n this.ui.controls.setHelptext(messages);\r\n }\r\n\r\n private async signIn(googleUser: GoogleUser) {\r\n try {\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n\r\n const response = await this.snapAuth.signIn(AuthType.Google, {\r\n idToken: googleUser.getAuthResponse().id_token,\r\n });\r\n\r\n this.googleAuth.signOut();\r\n this.navigate(response);\r\n\r\n } catch (ex) {\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n\r\n if (this.snapAuth.isAuthException(ex)) {\r\n this.setHelptext(ex.message, ex.controls);\r\n\r\n if (ex.code === ErrorCode.AccountDoesNotExist) {\r\n this.signUpControl.hidden = false;\r\n this.signUpControl.focus();\r\n }\r\n\r\n } else {\r\n this.setHelptext(`Can't sign in`);\r\n const message = typeof ex === 'string' ? ex : ex.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n }\r\n }\r\n\r\n private async signUp(googleUser: GoogleUser) {\r\n try {\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n\r\n const response = await this.snapAuth.signUp(AuthType.Google, {\r\n idToken: googleUser.getAuthResponse().id_token,\r\n });\r\n\r\n this.navigate(response);\r\n\r\n } catch (ex) {\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n\r\n if (this.snapAuth.isAuthException(ex)) {\r\n this.setHelptext(ex.message, ex.controls);\r\n\r\n } else {\r\n this.setHelptext(`Can't sign up`);\r\n const message = typeof ex === 'string' ? ex : ex.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/components/google.component.ts","import {headerNames} from '../constants';\r\nimport * as snapAuth from '../core/snap-auth';\r\nimport {log} from '../shared/log';\r\nimport {ui} from '../shared/ui';\r\nimport {SnapComponent} from './snap.component';\r\n\r\nexport async function init() {\r\n try {\r\n const signInForm = ui.forms.get(SnapComponent.formName);\r\n\r\n if (signInForm == null) {\r\n throw new Error(`UI form not found for \"${SnapComponent.formName}\".`);\r\n }\r\n\r\n return new SnapComponent(snapAuth, signInForm, ui, log, headerNames.REDIRECT_URL);\r\n\r\n } catch (ex) {\r\n const message = typeof ex === 'string' ? ex : ex.message;\r\n log.warn(message);\r\n log.sendError(message);\r\n throw new Error(message);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/components/snap.ts","import {AuthType} from '../constants';\r\nimport {SnapAuth} from '../core/snap-auth';\r\nimport {LogService} from '../shared/log';\r\nimport {SignInForm, UiService} from '../shared/ui';\r\n\r\ninterface SignInData {\r\n email: string;\r\n password: string;\r\n rememberEmail: boolean;\r\n returnUrl: string;\r\n}\r\n\r\nexport class SnapComponent {\r\n static readonly formName = 'vanilla';\r\n\r\n constructor(\r\n private readonly snapAuth: SnapAuth,\r\n private readonly signInForm: SignInForm,\r\n private readonly ui: UiService,\r\n private readonly log: LogService,\r\n private readonly REDIRECT_URL: string,\r\n ) {\r\n this.handleSignInInteraction = this.handleSignInInteraction.bind(this);\r\n\r\n this.signInForm.registerInteractionHandler('submit', this.handleSignInInteraction);\r\n }\r\n\r\n private async handleSignInInteraction(evt: Event) {\r\n evt.preventDefault();\r\n\r\n const data = this.generateSignInData();\r\n this.signIn(data);\r\n }\r\n\r\n private navigate(response: Response) {\r\n const redirectUrl = response.headers.get(this.REDIRECT_URL);\r\n window.location.href = redirectUrl || '/';\r\n }\r\n\r\n private setHelptext(message = '', messages?: Map) {\r\n this.ui.forms.setHelptext(new Map([[SnapComponent.formName, message]]));\r\n this.ui.controls.setHelptext(messages);\r\n }\r\n\r\n private async signIn(data: SignInData) {\r\n try {\r\n this.ui.masterControl.disabled = true;\r\n this.ui.masterControl.progress = true;\r\n this.setHelptext();\r\n\r\n const response = await this.snapAuth.signIn(AuthType.Snap, data);\r\n\r\n this.navigate(response);\r\n\r\n } catch (ex) {\r\n this.ui.masterControl.disabled = false;\r\n this.ui.masterControl.progress = false;\r\n\r\n this.signInForm.focus();\r\n\r\n if (this.snapAuth.isAuthException(ex)) {\r\n this.setHelptext(ex.message, ex.controls);\r\n\r\n } else {\r\n this.setHelptext(`Can't sign in`);\r\n const message = typeof ex === 'string' ? ex : ex.message;\r\n this.log.error(message);\r\n this.log.sendError(message);\r\n }\r\n }\r\n }\r\n\r\n private generateSignInData(): SignInData {\r\n const $form = this.signInForm.$ as HTMLFormElement;\r\n const names: Array = ['email', 'password', 'rememberEmail', 'returnUrl'];\r\n return names.reduce((acc: Partial, name) => {\r\n acc[name] = this.getValue(this.getElement($form.elements, name));\r\n return acc;\r\n }, {}) as SignInData;\r\n }\r\n\r\n private getElement(elements: HTMLFormControlsCollection, name: string) {\r\n const element = elements.namedItem(name);\r\n return element instanceof NodeList ? element[0] : element;\r\n }\r\n\r\n private getValue(element: Element | null) {\r\n if (element instanceof HTMLInputElement) {\r\n switch (element.type) {\r\n case 'checkbox':\r\n case 'radio':\r\n return element.checked;\r\n default:\r\n return element.value;\r\n }\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/components/snap.component.ts","import {facebookApi} from './core/facebook-api';\r\nimport {googleApi} from './core/google-api';\r\n\r\n(async (window: any) => {\r\n const fb = await facebookApi.fb;\r\n const gapi = await googleApi.gapi;\r\n\r\n window.signOutFacebook = async () => await facebookApi.graph('/me/permissions', 'delete');\r\n window.signOutGoogle = async () => gapi.auth2.getAuthInstance().signOut(); // .disconnect();\r\n window.signOut = () => Promise.all([window.signOutFacebook(), window.signOutGoogle()]);\r\n})(window);\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/tslint-loader??ref--0!./src/_debug.ts"],"sourceRoot":""}