forked from gitalk/gitalk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gitalk.js.map
1 lines (1 loc) · 346 KB
/
gitalk.js.map
1
{"version":3,"sources":["webpack:https:///webpack/universalModuleDefinition","webpack:https:///webpack/bootstrap cf60d2aa4c89245d8a04","webpack:https:///../node_modules/axios/lib/utils.js","webpack:https:///../node_modules/preact-compat/dist/preact-compat.es.js","webpack:https:///../node_modules/process/browser.js","webpack:https:///../node_modules/date-fns/parse/index.js","webpack:https:///../node_modules/fbjs/lib/emptyFunction.js","webpack:https:///../node_modules/fbjs/lib/invariant.js","webpack:https:///../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:https:///../node_modules/react-flip-move/lib/helpers.js","webpack:https:///../node_modules/axios/lib/defaults.js","webpack:https:///../node_modules/fbjs/lib/warning.js","webpack:https:///./util.js","webpack:https:///../node_modules/axios/lib/helpers/bind.js","webpack:https:///../node_modules/axios/lib/adapters/xhr.js","webpack:https:///../node_modules/axios/lib/core/createError.js","webpack:https:///../node_modules/axios/lib/cancel/isCancel.js","webpack:https:///../node_modules/axios/lib/cancel/Cancel.js","webpack:https:///./component/avatar.jsx","webpack:https:///./component/svg.jsx","webpack:https:///./index.js","webpack:https:///../node_modules/prop-types/index.js","webpack:https:///../node_modules/prop-types/factoryWithTypeCheckers.js","webpack:https:///../node_modules/prop-types/checkPropTypes.js","webpack:https:///../node_modules/prop-types/factoryWithThrowingShims.js","webpack:https:///../node_modules/preact/dist/preact.js","webpack:https:///./gitalk.jsx","webpack:https:///../node_modules/react-flip-move/lib/index.js","webpack:https:///../node_modules/react-flip-move/lib/FlipMove.js","webpack:https:///../node_modules/react-flip-move/lib/polyfills.js","webpack:https:///../node_modules/react-flip-move/lib/prop-converter.js","webpack:https:///../node_modules/react-flip-move/lib/error-messages.js","webpack:https:///../node_modules/react-flip-move/lib/enter-leave-presets.js","webpack:https:///../node_modules/react-flip-move/lib/dom-manipulation.js","webpack:https:///../node_modules/autosize/dist/autosize.js","webpack:https:///./i18n/index.js","webpack:https:///../node_modules/node-polyglot/build/polyglot.js","webpack:https:///./i18n/zh-CN.json","webpack:https:///./i18n/zh-TW.json","webpack:https:///./i18n/en.json","webpack:https:///./i18n/es-ES.json","webpack:https:///./i18n/fr.json","webpack:https:///./style/index.styl","webpack:https:///../node_modules/axios/index.js","webpack:https:///../node_modules/axios/lib/axios.js","webpack:https:///../node_modules/is-buffer/index.js","webpack:https:///../node_modules/axios/lib/core/Axios.js","webpack:https:///../node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:https:///../node_modules/axios/lib/core/settle.js","webpack:https:///../node_modules/axios/lib/core/enhanceError.js","webpack:https:///../node_modules/axios/lib/helpers/buildURL.js","webpack:https:///../node_modules/axios/lib/helpers/parseHeaders.js","webpack:https:///../node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:https:///../node_modules/axios/lib/helpers/btoa.js","webpack:https:///../node_modules/axios/lib/helpers/cookies.js","webpack:https:///../node_modules/axios/lib/core/InterceptorManager.js","webpack:https:///../node_modules/axios/lib/core/dispatchRequest.js","webpack:https:///../node_modules/axios/lib/core/transformData.js","webpack:https:///../node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:https:///../node_modules/axios/lib/helpers/combineURLs.js","webpack:https:///../node_modules/axios/lib/cancel/CancelToken.js","webpack:https:///../node_modules/axios/lib/helpers/spread.js","webpack:https:///./component/button.jsx","webpack:https:///./component/action.jsx","webpack:https:///./component/comment.jsx","webpack:https:////Users/liuchuwen/node_modules/raw-loader ^\\.\\/.*\\.svg$","webpack:https:///./assets/icon/arrow_down.svg","webpack:https:///./assets/icon/edit.svg","webpack:https:///./assets/icon/github.svg","webpack:https:///./assets/icon/reply.svg","webpack:https:///./assets/icon/tip.svg","webpack:https:///../node_modules/date-fns/distance_in_words_to_now/index.js","webpack:https:///../node_modules/date-fns/distance_in_words/index.js","webpack:https:///../node_modules/date-fns/compare_desc/index.js","webpack:https:///../node_modules/date-fns/is_date/index.js","webpack:https:///../node_modules/date-fns/difference_in_seconds/index.js","webpack:https:///../node_modules/date-fns/difference_in_milliseconds/index.js","webpack:https:///../node_modules/date-fns/difference_in_months/index.js","webpack:https:///../node_modules/date-fns/difference_in_calendar_months/index.js","webpack:https:///../node_modules/date-fns/compare_asc/index.js","webpack:https:///../node_modules/date-fns/locale/en/index.js","webpack:https:///../node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js","webpack:https:///../node_modules/date-fns/locale/en/build_format_locale/index.js","webpack:https:///../node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js","webpack:https:///../node_modules/date-fns/locale/zh_cn/build_distance_in_words_locale/index.js","webpack:https:///../node_modules/date-fns/locale/zh_tw/build_distance_in_words_locale/index.js","webpack:https:///../node_modules/date-fns/locale/es/build_distance_in_words_locale/index.js","webpack:https:///../node_modules/date-fns/locale/fr/build_distance_in_words_locale/index.js","webpack:https:///../node_modules/github-markdown-css/github-markdown.css","webpack:https:///./const.js","webpack:https:///./graphql/getComments.js"],"names":["queryParse","search","window","location","queryString","substring","query","split","forEach","queryStr","key","value","decodeURIComponent","queryStringify","Object","keys","map","encodeURIComponent","join","axiosJSON","create","headers","axiosGithub","baseURL","getMetaContent","name","content","el","document","querySelector","getAttribute","formatErrorMsg","msg","err","response","data","message","errors","e","hasClassInParent","element","className","yes","classes","c","i","indexOf","parentNode","Avatar","props","src","Svg","__html","require","text","Gitalk","options","container","node","Error","HTMLElement","getElementById","module","exports","GitalkComponent","state","user","issue","comments","localComments","comment","page","pagerDirection","cursor","isNoInit","isIniting","isCreating","isLoading","isLoadMore","isLoadOver","isIssueCreating","isPopupVisible","isInputFocused","isOccurError","errorMsg","getCommentsV3","clientID","clientSecret","perPage","getIssue","then","get","comments_url","Accept","params","client_id","client_secret","per_page","cs","concat","res","length","setState","getRef","publicBtnEL","handlePopup","preventDefault","stopPropagation","isVisible","hideHandle","e1","target","removeEventListener","addEventListener","handleLogin","localStorage","setItem","href","loginLink","handleIssueCreate","createIssue","getComments","catch","handleCommentCreate","commentEL","focus","createComment","handleCommentLoad","handleCommentChange","handleLogout","logout","reload","handleCommentFocus","distractionFreeMode","handleCommentBlur","handleSort","direction","handleCommentKeyDown","enableHotKey","metaKey","ctrlKey","keyCode","assign","id","labels","title","body","language","navigator","userLanguage","createIssueManually","proxy","flipMoveOptions","staggerDelayBy","appearAnimation","enterAnimation","leaveAnimation","url","storedComment","getItem","removeItem","code","replacedUrl","origin","pathname","hash","history","replaceState","post","access_token","accessToken","getInit","console","log","i18n","getUserInfo","Authorization","Promise","resolve","owner","repo","admin","login","call","replyComment","replyCommentBody","replyCommentArray","unshift","t","push","update","link","u","avatar_url","totalComments","reverse","reply","bind","cnt","isDesc","counts","html_url","smart_count","initing","meta","noInit","header","_accessToke","token","_accessToken","githubOauthUrl","redirect_uri","scope","phrases","i18nMap","en","locale","Button","onClick","onMouseDown","Action","ZHCN","ZHTW","ES","FR","GT_i18n_distanceInWordsLocaleMap","Comment","commentedText","replyCallback","enableEdit","isAdmin","created_at","addSuffix","distanceInWords","body_html","GT_ACCESS_TOKEN","GT_VERSION","GT_COMMENT","getQL","vars","cursorDirection","ql","operationName","variables","number","pageSize","repository","items","nodes","databaseId","author","avatarUrl","createdAt","bodyHTML","pageInfo","hasPreviousPage","hasNextPage","startCursor","endCursor"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AC7DA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,2BAA2B;AAC3B;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9SA;AACsD;;AAEtD,uBAAuB;;AAEvB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;;AAGA;;AAEA;AACA;;AAEA;AACA,2BAA2B,aAAa;;;;AAIxC;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB,EAAE;AAC1C,mBAAmB,mBAAmB,EAAE;AACxC;AACA,CAAC;;AAED;AACA,kBAAkB,wBAAwB,EAAE;AAC5C,mBAAmB,qBAAqB,EAAE;AAC1C;AACA,CAAC;;;;AAID;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;;AAEvC;AACA;AACA,wDAAwD,4BAA4B;AACpF,yBAAyB,iCAAiC;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,4BAA4B;AACnF,wBAAwB,iCAAiC;;AAEzD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,4CAA4C;AACpE,SAAS,6BAA6B;AACtC;;AAEA;AACA;AACA;AACA,gBAAgB,8CAA8C,OAAO,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA,wCAAwC,aAAa;;AAErD;AACA,aAAa,2BAA2B;;AAExC;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;;AAEA;AACA,cAAc,2DAA2D,YAAY,EAAE;AACvF,oCAAoC,YAAY;AAChD;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wEAAgC,mCAAmC;AACnE;AACA,gBAAgB,aAAa;AAC7B;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA,8BAA8B,mBAAmB;AACjD;AACA,EAAE;AACF;AACA,yBAAyB,aAAa;AACtC;AACA,8BAA8B,mBAAmB;AACjD;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,4BAA4B,4DAA4D;AACxF;AACA,EAAE;AACF;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;;;AAGA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA,2BAA2B,KAAK;AAChC;AACA;;AAEA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA,eAAe,wCAAwC;;AAEvD;;AAEA,wDAAwD,gCAAgC;AACxF;AACA;AACA;;AAEA,qDAAqD,mCAAmC;;AAExF;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,mBAAmB,QAAQ;AAC3B;AACA,UAAU,2BAA2B;AACrC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,mBAAmB,iBAAiB,aAAa,EAAE;AACnD,qBAAqB,uBAAuB,aAAa,EAAE;AAC3D;AACA;;;AAGA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,kBAAkB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,gBAAgB;AAC/B;;AAEA;AACA,eAAe,UAAU;AACzB,wBAAwB;AACxB;AACA,KAAK;AACL;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE6S;AAC7S;;;;;;;;AC1mBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACvLtC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,EAAE;AAC3B;AACA,YAAY,EAAE;AACd,YAAY,EAAE;AACd,YAAY,EAAE;AACd;;AAEA,2BAA2B,EAAE;AAC7B;AACA,YAAY,EAAE;AACd,YAAY,EAAE;AACd,YAAY,EAAE;AACd;;AAEA;AACA,0BAA0B,EAAE;AAC5B,4BAA4B,EAAE;AAC9B,6BAA6B,EAAE,OAAO,EAAE;AACxC,6BAA6B,EAAE;AAC/B,8BAA8B,EAAE,OAAO,EAAE;;AAEzC;AACA,yBAAyB,EAAE;AAC3B,2BAA2B,EAAE,OAAO,EAAE;AACtC,6BAA6B,EAAE,OAAO,EAAE,OAAO,EAAE;;AAEjD;AACA;AACA;AACA,uCAAuC,EAAE;AACzC,yCAAyC,EAAE,OAAO,EAAE;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC/TA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+B;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;;AAEA,2B;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;;;;;;;ACbA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC,E;;;;;;;+CC3DD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY;AACnB;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAE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AiBC,QAAQO,UAAzB,EAAqCN,SAArC,CAA7B;AACD,CAhBM,C;;;;;;;ACzDP;;AAEA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;;+CCVA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;ACnLA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;;AAEA;AACA;AACA;;;;;;;;ACJA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;;kBChBwBO,M;;AAFxB;;;;;;AAEe,SAASA,MAAT,CAAiBC,KAAjB,EAAwB;AACrC,MAAMC,MAAMD,MAAMC,GAAlB;AACA,MAAIT,YAAY,YAAhB;AACAQ,QAAMR,SAAN,KAAoBA,aAAaQ,MAAMR,SAAvC;AACA,SACE;AAAA;AAAA,MAAK,WAAWA,SAAhB;AACE,2CAAK,KAAKS,GAAV,EAAe,KAAI,cAAnB;AADF,GADF;AAKD,C;;;;;;;;;;;;kBCTuBC,G;;AAFxB;;;;;;AAEe,SAASA,GAAT,CAAcF,KAAd,EAAqB;AAClC,MAAIR,YAAY,SAAhB;AACAQ,QAAMR,SAAN,KAAoBA,aAAaQ,MAAMR,SAAvC;AACA,SACE;AAAA;AAAA,MAAM,WAAWA,SAAjB;AACE,4CAAM,WAAU,QAAhB,EAAyB,yBAAyB;AAChDW,gBAAQ,4BAAAC,GAAuCJ,MAAMxB,IAA7C;AADwC,OAAlD,GADF;AAIGwB,UAAMK,IAAN,IACC;AAAA;AAAA,QAAM,WAAU,aAAhB;AAA+BL,YAAMK;AAArC;AALJ,GADF;AAUD,C;;;;;;;;;;;ACfD;;;;AACA;;AACA;;;;;;;;IAEMC,M;AACJ,oBAA2B;AAAA,QAAdC,OAAc,uEAAJ,EAAI;;AAAA;;AACzB,SAAKA,OAAL,GAAeA,OAAf;AACD;;;;2BAEOC,S,EAAW;AACjB,UAAIC,OAAO,IAAX;AACAD,kBAAYA,aAAa,KAAKD,OAAL,CAAaC,SAAtC;;AAEA,UAAI,CAACA,SAAL,EAAgB,MAAM,IAAIE,KAAJ,6BAAoCF,SAApC,CAAN;;AAEhB,UAAI,EAAEA,qBAAqBG,WAAvB,CAAJ,EAAyC;AACvCF,eAAO9B,SAASiC,cAAT,CAAwBJ,SAAxB,CAAP;AACA,YAAI,CAACC,IAAL,EAAW,MAAM,IAAIC,KAAJ,oDAA2DF,SAA3D,CAAN;AACZ,OAHD,MAGO;AACLC,eAAOD,SAAP;AACD;;AAED,aAAO,sBAAO,kDAAiB,SAAS,KAAKD,OAA/B,GAAP,EAAkDE,IAAlD,CAAP;AACD;;;;;;AAGHI,OAAOC,OAAP,GAAiBR,MAAjB,C;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA;AACA,sGAAsG,KAAK,wBAAwB;AACnI;AACA,sFAAsF,0DAA0D;AAChJ,6EAA6E,4DAA4D;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uHAAuH;AACvH;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,SAAS,mEAAmE;AAC5E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,uCAAuC;AACvC,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,kIAAkI,iCAAiC,6HAA6H;AAChS;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAoD,iBAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,gHAAgH;AAC7L;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IAA8I;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA,uJAAuJ;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAA8D;AAC9D,CAAC;AACD,kC;;;;;;;;;;;AC/YA;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;AACA;;AASA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;AACA;;;;;;;;;;;;IAEMS,e;;;AAwBJ,2BAAaf,KAAb,EAAoB;AAAA;;AAAA,kIACZA,KADY;;AAAA,UAvBpBgB,KAuBoB,GAvBZ;AACNC,YAAM,IADA;AAENC,aAAO,IAFD;AAGNC,gBAAU,EAHJ;AAIN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yBAAyB;AAC9B;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY,mBAAmB;AAC3D,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,cAAc,2CAA2C;AACnF,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,mCAAmC,UAAU,gBAAgB;AAC7D;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC,WAAW;AACX,gCAAgC;AAChC,WAAW;AACX,gCAAgC;AAChC;;AAEA;AACA,sDAAsD,mCAAmC;AACzF,SAAS;AACT,OAAO;;AAEP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B;AACA;AACA,WAAW;AACX,SAAS;;AAET,uBAAuB,yBAAyB;AAChD;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,0CAA0C;AAC1C;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD,mBAAmB;AACpE;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,6BAA6B;AAC7B;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA,oC;;;;;;;ACxtBA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;+CC/EA;;AAEA;AACA;AACA,CAAC;;AAED,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;AAC5e;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA,oC;;;;;;;;AC5OA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,E;;;;;;;AC1BA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,sCAAsC;AACjD,SAAS;AACT,GAAG;AACH;AACA,WAAW,eAAe;AAC1B,SAAS;AACT,GAAG;AACH;AACA,WAAW,wDAAwD;AACnE,SAAS;AACT,GAAG;AACH;AACA,WAAW,yDAAyD;AACpE,SAAS;AACT,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sCAAsC;AACjD,SAAS;AACT,GAAG;AACH;AACA,WAAW,eAAe;AAC1B,SAAS;AACT,GAAG;AACH;AACA,WAAW,wDAAwD;AACnE,SAAS;AACT,GAAG;AACH;AACA,WAAW,yDAAyD;AACpE,SAAS;AACT,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mD;;;;;;;ACrEA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;AAC9P;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;;AAEA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,yBAAyB;AAC/C,GAAG,IAAI;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B,cAAc,EAAE;;AAEpE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH,E;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,0BAA0B,gBAAgB;AAC1C;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,+EAA+E;;AAE/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,E;;;;;;;;;;;;;kBCnRc,UAAUmF,QAAV,EAAoB;AACjC,SAAO,uBAAa;AAClBkE,aAASC,QAAQnE,QAAR,KAAqBmE,QAAQC,EADpB;AAElBC,YAAQrE;AAFU,GAAb,CAAP;AAID,C;;AArBD;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,IAAMmE,UAAU;AACd,sBADc;AAEd,yBAFc;AAGd,yBAHc;AAId,oBAJc;AAKd,yBALc;AAMd;AANc,CAAhB,C;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;;AAGA;AACA;AACA;AACA;AACA,KAAK;AAAA;AACL,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC,UAAU;AACV;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,UAAU,EAAE;AACxC,4BAA4B,wBAAwB,EAAE;AACtD,4BAA4B,sBAAsB,EAAE;AACpD,4BAA4B,mHAAmH,EAAE;AACjJ,4BAA4B,mDAAmD,EAAE;AACjF,4BAA4B,8FAA8F,EAAE;AAC5H,4BAA4B,iDAAiD;AAC7E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,UAAU;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;AC5SD;AACA;AACA,+BAA+B,KAAK;AACpC,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,E;;;;;;AClBA;AACA;AACA,+BAA+B,KAAK;AACpC,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,E;;;;;;AClBA;AACA;AACA,gCAAgC,KAAK;AACrC,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB,cAAc,OAAO,gBAAgB,OAAO;AAC5C;AACA;AACA;AACA;AACA,E;;;;;;AClBA;AACA;AACA,6BAA6B,KAAK;AAClC,6CAA6C,KAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB,cAAc,OAAO,mBAAmB,OAAO;AAC/C;AACA;AACA;AACA;AACA,E;;;;;;AClBA;AACA;AACA,6BAA6B,KAAK;AAClC,gDAAgD,KAAK;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB,cAAc,OAAO,oBAAoB,OAAO;AAChD;AACA;AACA;AACA;AACA,E;;;;;;AClBA,yC;;;;;;ACAA,yC;;;;;;;ACAA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACpBA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,iDAAiD,gBAAgB;AACjE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;ACrFA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACXA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;ACnEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;ACpCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACnEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC;AACxC,OAAO;;AAEP;AACA,0DAA0D,wBAAwB;AAClF;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B,aAAa,EAAE;AAC5C;AACA;AACA,GAAG;AACH;;;;;;;;ACpDA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;ACnDA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;AC9EA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACxDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;kBCxBwBG,M;;AAFxB;;;;;;AAEe,SAASA,MAAT,CAAiBxK,KAAj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;;;;;ACAA,6jC;;;;;;ACAA,sV;;;;;;ACAA,s8C;;;;;;ACAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;;;;;;AC1MA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;AC/BA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;AClDA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACVA;AACA;AACA;AACA;AACA,0BAA0B,OAAO;AACjC,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;;AAEA;AACA;AACA,0BAA0B,OAAO;AACjC,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;AACA;AACA,sBAAsB,OAAO;AAC7B,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;AACA;AACA,sBAAsB,OAAO;AAC7B,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;AACA;AACA,sBAAsB,OAAO;AAC7B,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;AACA;AACA,qBAAqB,OAAO;AAC5B,KAAK;;AAEL;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,6DAA6D,OAAO;AACpE;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;AClGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;;AAEA;AACA;AACA,mBAAmB,OAAO;AAC1B,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;AACA;AACA,mBAAmB,OAAO;AAC1B,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,KAAK;;AAEL;AACA;AACA,mBAAmB,OAAO;AAC1B,KAAK;;AAEL;AACA;AAC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","file":"gitalk.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Gitalk\"] = factory();\n\telse\n\t\troot[\"Gitalk\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \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 = \"/dist\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 18);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap cf60d2aa4c89245d8a04","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/utils.js\n// module id = 0\n// module chunks = 0","import PropTypes from 'prop-types';\nimport { Component, cloneElement, h, options, render } from 'preact';\n\nvar version = '15.1.0'; // trick libraries to think we are react\n\nvar ELEMENTS = 'a abbr address area article aside audio b base bdi bdo big blockquote body br button canvas caption cite code col colgroup data datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins kbd keygen label legend li link main map mark menu menuitem meta meter nav noscript object ol optgroup option output p param picture pre progress q rp rt ruby s samp script section select small source span strong style sub summary sup table tbody td textarea tfoot th thead time title tr track u ul var video wbr circle clipPath defs ellipse g image line linearGradient mask path pattern polygon polyline radialGradient rect stop svg text tspan'.split(' ');\n\nvar REACT_ELEMENT_TYPE = (typeof Symbol!=='undefined' && Symbol.for && Symbol.for('react.element')) || 0xeac7;\n\nvar COMPONENT_WRAPPER_KEY = typeof Symbol!=='undefined' ? Symbol.for('__preactCompatWrapper') : '__preactCompatWrapper';\n\n// don't autobind these methods since they already have guaranteed context.\nvar AUTOBIND_BLACKLIST = {\n\tconstructor: 1,\n\trender: 1,\n\tshouldComponentUpdate: 1,\n\tcomponentWillReceiveProps: 1,\n\tcomponentWillUpdate: 1,\n\tcomponentDidUpdate: 1,\n\tcomponentWillMount: 1,\n\tcomponentDidMount: 1,\n\tcomponentWillUnmount: 1,\n\tcomponentDidUnmount: 1\n};\n\n\nvar CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip|color|fill|flood|font|glyph|horiz|marker|overline|paint|stop|strikethrough|stroke|text|underline|unicode|units|v|vert|word|writing|x)[A-Z]/;\n\n\nvar BYPASS_HOOK = {};\n\n/*global process*/\nvar DEV = typeof process==='undefined' || !process.env || process.env.NODE_ENV!=='production';\n\n// a component that renders nothing. Used to replace components for unmountComponentAtNode.\nfunction EmptyComponent() { return null; }\n\n\n\n// make react think we're react.\nvar VNode = h('a', null).constructor;\nVNode.prototype.$$typeof = REACT_ELEMENT_TYPE;\nVNode.prototype.preactCompatUpgraded = false;\nVNode.prototype.preactCompatNormalized = false;\n\nObject.defineProperty(VNode.prototype, 'type', {\n\tget: function() { return this.nodeName; },\n\tset: function(v) { this.nodeName = v; },\n\tconfigurable:true\n});\n\nObject.defineProperty(VNode.prototype, 'props', {\n\tget: function() { return this.attributes; },\n\tset: function(v) { this.attributes = v; },\n\tconfigurable:true\n});\n\n\n\nvar oldEventHook = options.event;\noptions.event = function (e) {\n\tif (oldEventHook) { e = oldEventHook(e); }\n\te.persist = Object;\n\te.nativeEvent = e;\n\treturn e;\n};\n\n\nvar oldVnodeHook = options.vnode;\noptions.vnode = function (vnode) {\n\tif (!vnode.preactCompatUpgraded) {\n\t\tvnode.preactCompatUpgraded = true;\n\n\t\tvar tag = vnode.nodeName,\n\t\t\tattrs = vnode.attributes = extend({}, vnode.attributes);\n\n\t\tif (typeof tag==='function') {\n\t\t\tif (tag[COMPONENT_WRAPPER_KEY]===true || (tag.prototype && 'isReactComponent' in tag.prototype)) {\n\t\t\t\tif (vnode.children && String(vnode.children)==='') { vnode.children = undefined; }\n\t\t\t\tif (vnode.children) { attrs.children = vnode.children; }\n\n\t\t\t\tif (!vnode.preactCompatNormalized) {\n\t\t\t\t\tnormalizeVNode(vnode);\n\t\t\t\t}\n\t\t\t\thandleComponentVNode(vnode);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (vnode.children && String(vnode.children)==='') { vnode.children = undefined; }\n\t\t\tif (vnode.children) { attrs.children = vnode.children; }\n\n\t\t\tif (attrs.defaultValue) {\n\t\t\t\tif (!attrs.value && attrs.value!==0) {\n\t\t\t\t\tattrs.value = attrs.defaultValue;\n\t\t\t\t}\n\t\t\t\tdelete attrs.defaultValue;\n\t\t\t}\n\n\t\t\thandleElementVNode(vnode, attrs);\n\t\t}\n\t}\n\n\tif (oldVnodeHook) { oldVnodeHook(vnode); }\n};\n\nfunction handleComponentVNode(vnode) {\n\tvar tag = vnode.nodeName,\n\t\ta = vnode.attributes;\n\n\tvnode.attributes = {};\n\tif (tag.defaultProps) { extend(vnode.attributes, tag.defaultProps); }\n\tif (a) { extend(vnode.attributes, a); }\n}\n\nfunction handleElementVNode(vnode, a) {\n\tvar shouldSanitize, attrs, i;\n\tif (a) {\n\t\tfor (i in a) { if ((shouldSanitize = CAMEL_PROPS.test(i))) { break; } }\n\t\tif (shouldSanitize) {\n\t\t\tattrs = vnode.attributes = {};\n\t\t\tfor (i in a) {\n\t\t\t\tif (a.hasOwnProperty(i)) {\n\t\t\t\t\tattrs[ CAMEL_PROPS.test(i) ? i.replace(/([A-Z0-9])/, '-$1').toLowerCase() : i ] = a[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n\n// proxy render() since React returns a Component reference.\nfunction render$1(vnode, parent, callback) {\n\tvar prev = parent && parent._preactCompatRendered && parent._preactCompatRendered.base;\n\n\t// ignore impossible previous renders\n\tif (prev && prev.parentNode!==parent) { prev = null; }\n\n\t// default to first Element child\n\tif (!prev) { prev = parent.children[0]; }\n\n\t// remove unaffected siblings\n\tfor (var i=parent.childNodes.length; i--; ) {\n\t\tif (parent.childNodes[i]!==prev) {\n\t\t\tparent.removeChild(parent.childNodes[i]);\n\t\t}\n\t}\n\n\tvar out = render(vnode, parent, prev);\n\tif (parent) { parent._preactCompatRendered = out && (out._component || { base: out }); }\n\tif (typeof callback==='function') { callback(); }\n\treturn out && out._component || out;\n}\n\n\nvar ContextProvider = function () {};\n\nContextProvider.prototype.getChildContext = function () {\n\treturn this.props.context;\n};\nContextProvider.prototype.render = function (props) {\n\treturn props.children[0];\n};\n\nfunction renderSubtreeIntoContainer(parentComponent, vnode, container, callback) {\n\tvar wrap = h(ContextProvider, { context: parentComponent.context }, vnode);\n\tvar c = render$1(wrap, container);\n\tif (callback) { callback(c); }\n\treturn c._component || c.base;\n}\n\n\nfunction unmountComponentAtNode(container) {\n\tvar existing = container._preactCompatRendered && container._preactCompatRendered.base;\n\tif (existing && existing.parentNode===container) {\n\t\trender(h(EmptyComponent), container, existing);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n\nvar ARR = [];\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nvar Children = {\n\tmap: function(children, fn, ctx) {\n\t\tif (children == null) { return null; }\n\t\tchildren = Children.toArray(children);\n\t\tif (ctx && ctx!==children) { fn = fn.bind(ctx); }\n\t\treturn children.map(fn);\n\t},\n\tforEach: function(children, fn, ctx) {\n\t\tif (children == null) { return null; }\n\t\tchildren = Children.toArray(children);\n\t\tif (ctx && ctx!==children) { fn = fn.bind(ctx); }\n\t\tchildren.forEach(fn);\n\t},\n\tcount: function(children) {\n\t\treturn children && children.length || 0;\n\t},\n\tonly: function(children) {\n\t\tchildren = Children.toArray(children);\n\t\tif (children.length!==1) { throw new Error('Children.only() expects only one child.'); }\n\t\treturn children[0];\n\t},\n\ttoArray: function(children) {\n\t\tif (children == null) { return []; }\n\t\treturn Array.isArray && Array.isArray(children) ? children : ARR.concat(children);\n\t}\n};\n\n\n/** Track current render() component for ref assignment */\nvar currentComponent;\n\n\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n\nvar DOM = {};\nfor (var i=ELEMENTS.length; i--; ) {\n\tDOM[ELEMENTS[i]] = createFactory(ELEMENTS[i]);\n}\n\nfunction upgradeToVNodes(arr, offset) {\n\tfor (var i=offset || 0; i<arr.length; i++) {\n\t\tvar obj = arr[i];\n\t\tif (Array.isArray(obj)) {\n\t\t\tupgradeToVNodes(obj);\n\t\t}\n\t\telse if (obj && typeof obj==='object' && !isValidElement(obj) && ((obj.props && obj.type) || (obj.attributes && obj.nodeName) || obj.children)) {\n\t\t\tarr[i] = createElement(obj.type || obj.nodeName, obj.props || obj.attributes, obj.children);\n\t\t}\n\t}\n}\n\nfunction isStatelessComponent(c) {\n\treturn typeof c==='function' && !(c.prototype && c.prototype.render);\n}\n\n\n// wraps stateless functional components in a PropTypes validator\nfunction wrapStatelessComponent(WrappedComponent) {\n\treturn createClass({\n\t\tdisplayName: WrappedComponent.displayName || WrappedComponent.name,\n\t\trender: function() {\n\t\t\treturn WrappedComponent(this.props, this.context);\n\t\t}\n\t});\n}\n\n\nfunction statelessComponentHook(Ctor) {\n\tvar Wrapped = Ctor[COMPONENT_WRAPPER_KEY];\n\tif (Wrapped) { return Wrapped===true ? Ctor : Wrapped; }\n\n\tWrapped = wrapStatelessComponent(Ctor);\n\n\tObject.defineProperty(Wrapped, COMPONENT_WRAPPER_KEY, { configurable:true, value:true });\n\tWrapped.displayName = Ctor.displayName;\n\tWrapped.propTypes = Ctor.propTypes;\n\tWrapped.defaultProps = Ctor.defaultProps;\n\n\tObject.defineProperty(Ctor, COMPONENT_WRAPPER_KEY, { configurable:true, value:Wrapped });\n\n\treturn Wrapped;\n}\n\n\nfunction createElement() {\n\tvar args = [], len = arguments.length;\n\twhile ( len-- ) args[ len ] = arguments[ len ];\n\n\tupgradeToVNodes(args, 2);\n\treturn normalizeVNode(h.apply(void 0, args));\n}\n\n\nfunction normalizeVNode(vnode) {\n\tvnode.preactCompatNormalized = true;\n\n\tapplyClassName(vnode);\n\n\tif (isStatelessComponent(vnode.nodeName)) {\n\t\tvnode.nodeName = statelessComponentHook(vnode.nodeName);\n\t}\n\n\tvar ref = vnode.attributes.ref,\n\t\ttype = ref && typeof ref;\n\tif (currentComponent && (type==='string' || type==='number')) {\n\t\tvnode.attributes.ref = createStringRefProxy(ref, currentComponent);\n\t}\n\n\tapplyEventNormalization(vnode);\n\n\treturn vnode;\n}\n\n\nfunction cloneElement$1(element, props) {\n\tvar children = [], len = arguments.length - 2;\n\twhile ( len-- > 0 ) children[ len ] = arguments[ len + 2 ];\n\n\tif (!isValidElement(element)) { return element; }\n\tvar elementProps = element.attributes || element.props;\n\tvar node = h(\n\t\telement.nodeName || element.type,\n\t\telementProps,\n\t\telement.children || elementProps && elementProps.children\n\t);\n\t// Only provide the 3rd argument if needed.\n\t// Arguments 3+ overwrite element.children in preactCloneElement\n\tvar cloneArgs = [node, props];\n\tif (children && children.length) {\n\t\tcloneArgs.push(children);\n\t}\n\telse if (props && props.children) {\n\t\tcloneArgs.push(props.children);\n\t}\n\treturn normalizeVNode(cloneElement.apply(void 0, cloneArgs));\n}\n\n\nfunction isValidElement(element) {\n\treturn element && ((element instanceof VNode) || element.$$typeof===REACT_ELEMENT_TYPE);\n}\n\n\nfunction createStringRefProxy(name, component) {\n\treturn component._refProxies[name] || (component._refProxies[name] = function (resolved) {\n\t\tif (component && component.refs) {\n\t\t\tcomponent.refs[name] = resolved;\n\t\t\tif (resolved===null) {\n\t\t\t\tdelete component._refProxies[name];\n\t\t\t\tcomponent = null;\n\t\t\t}\n\t\t}\n\t});\n}\n\n\nfunction applyEventNormalization(ref) {\n\tvar nodeName = ref.nodeName;\n\tvar attributes = ref.attributes;\n\n\tif (!attributes || typeof nodeName!=='string') { return; }\n\tvar props = {};\n\tfor (var i in attributes) {\n\t\tprops[i.toLowerCase()] = i;\n\t}\n\tif (props.ondoubleclick) {\n\t\tattributes.ondblclick = attributes[props.ondoubleclick];\n\t\tdelete attributes[props.ondoubleclick];\n\t}\n\t// for *textual inputs* (incl textarea), normalize `onChange` -> `onInput`:\n\tif (props.onchange && (nodeName==='textarea' || (nodeName.toLowerCase()==='input' && !/^fil|che|rad/i.test(attributes.type)))) {\n\t\tvar normalized = props.oninput || 'oninput';\n\t\tif (!attributes[normalized]) {\n\t\t\tattributes[normalized] = multihook([attributes[normalized], attributes[props.onchange]]);\n\t\t\tdelete attributes[props.onchange];\n\t\t}\n\t}\n}\n\n\nfunction applyClassName(ref) {\n\tvar attributes = ref.attributes;\n\n\tif (!attributes) { return; }\n\tvar cl = attributes.className || attributes.class;\n\tif (cl) { attributes.className = cl; }\n}\n\n\nfunction extend(base, props) {\n\tfor (var key in props) {\n\t\tif (props.hasOwnProperty(key)) {\n\t\t\tbase[key] = props[key];\n\t\t}\n\t}\n\treturn base;\n}\n\n\nfunction shallowDiffers(a, b) {\n\tfor (var i in a) { if (!(i in b)) { return true; } }\n\tfor (var i$1 in b) { if (a[i$1]!==b[i$1]) { return true; } }\n\treturn false;\n}\n\n\nfunction findDOMNode(component) {\n\treturn component && component.base || component;\n}\n\n\nfunction F(){}\n\nfunction createClass(obj) {\n\tfunction cl(props, context) {\n\t\tbindAll(this);\n\t\tComponent$1.call(this, props, context, BYPASS_HOOK);\n\t\tnewComponentHook.call(this, props, context);\n\t}\n\n\tobj = extend({ constructor: cl }, obj);\n\n\t// We need to apply mixins here so that getDefaultProps is correctly mixed\n\tif (obj.mixins) {\n\t\tapplyMixins(obj, collateMixins(obj.mixins));\n\t}\n\tif (obj.statics) {\n\t\textend(cl, obj.statics);\n\t}\n\tif (obj.propTypes) {\n\t\tcl.propTypes = obj.propTypes;\n\t}\n\tif (obj.defaultProps) {\n\t\tcl.defaultProps = obj.defaultProps;\n\t}\n\tif (obj.getDefaultProps) {\n\t\tcl.defaultProps = obj.getDefaultProps();\n\t}\n\n\tF.prototype = Component$1.prototype;\n\tcl.prototype = extend(new F(), obj);\n\n\tcl.displayName = obj.displayName || 'Component';\n\n\treturn cl;\n}\n\n\n// Flatten an Array of mixins to a map of method name to mixin implementations\nfunction collateMixins(mixins) {\n\tvar keyed = {};\n\tfor (var i=0; i<mixins.length; i++) {\n\t\tvar mixin = mixins[i];\n\t\tfor (var key in mixin) {\n\t\t\tif (mixin.hasOwnProperty(key) && typeof mixin[key]==='function') {\n\t\t\t\t(keyed[key] || (keyed[key]=[])).push(mixin[key]);\n\t\t\t}\n\t\t}\n\t}\n\treturn keyed;\n}\n\n\n// apply a mapping of Arrays of mixin methods to a component prototype\nfunction applyMixins(proto, mixins) {\n\tfor (var key in mixins) { if (mixins.hasOwnProperty(key)) {\n\t\tproto[key] = multihook(\n\t\t\tmixins[key].concat(proto[key] || ARR),\n\t\t\tkey==='getDefaultProps' || key==='getInitialState' || key==='getChildContext'\n\t\t);\n\t} }\n}\n\n\nfunction bindAll(ctx) {\n\tfor (var i in ctx) {\n\t\tvar v = ctx[i];\n\t\tif (typeof v==='function' && !v.__bound && !AUTOBIND_BLACKLIST.hasOwnProperty(i)) {\n\t\t\t(ctx[i] = v.bind(ctx)).__bound = true;\n\t\t}\n\t}\n}\n\n\nfunction callMethod(ctx, m, args) {\n\tif (typeof m==='string') {\n\t\tm = ctx.constructor.prototype[m];\n\t}\n\tif (typeof m==='function') {\n\t\treturn m.apply(ctx, args);\n\t}\n}\n\nfunction multihook(hooks, skipDuplicates) {\n\treturn function() {\n\t\tvar arguments$1 = arguments;\n\t\tvar this$1 = this;\n\n\t\tvar ret;\n\t\tfor (var i=0; i<hooks.length; i++) {\n\t\t\tvar r = callMethod(this$1, hooks[i], arguments$1);\n\n\t\t\tif (skipDuplicates && r!=null) {\n\t\t\t\tif (!ret) { ret = {}; }\n\t\t\t\tfor (var key in r) { if (r.hasOwnProperty(key)) {\n\t\t\t\t\tret[key] = r[key];\n\t\t\t\t} }\n\t\t\t}\n\t\t\telse if (typeof r!=='undefined') { ret = r; }\n\t\t}\n\t\treturn ret;\n\t};\n}\n\n\nfunction newComponentHook(props, context) {\n\tpropsHook.call(this, props, context);\n\tthis.componentWillReceiveProps = multihook([propsHook, this.componentWillReceiveProps || 'componentWillReceiveProps']);\n\tthis.render = multihook([propsHook, beforeRender, this.render || 'render', afterRender]);\n}\n\n\nfunction propsHook(props, context) {\n\tif (!props) { return; }\n\n\t// React annoyingly special-cases single children, and some react components are ridiculously strict about this.\n\tvar c = props.children;\n\tif (c && Array.isArray(c) && c.length===1) {\n\t\tprops.children = c[0];\n\n\t\t// but its totally still going to be an Array.\n\t\tif (props.children && typeof props.children==='object') {\n\t\t\tprops.children.length = 1;\n\t\t\tprops.children[0] = props.children;\n\t\t}\n\t}\n\n\t// add proptype checking\n\tif (DEV) {\n\t\tvar ctor = typeof this==='function' ? this : this.constructor,\n\t\t\tpropTypes = this.propTypes || ctor.propTypes;\n\t\tvar displayName = this.displayName || ctor.name;\n\n\t\tif (propTypes) {\n\t\t\tPropTypes.checkPropTypes(propTypes, props, 'prop', displayName);\n\t\t}\n\t}\n}\n\n\nfunction beforeRender(props) {\n\tcurrentComponent = this;\n}\n\nfunction afterRender() {\n\tif (currentComponent===this) {\n\t\tcurrentComponent = null;\n\t}\n}\n\n\n\nfunction Component$1(props, context, opts) {\n\tComponent.call(this, props, context);\n\tthis.state = this.getInitialState ? this.getInitialState() : {};\n\tthis.refs = {};\n\tthis._refProxies = {};\n\tif (opts!==BYPASS_HOOK) {\n\t\tnewComponentHook.call(this, props, context);\n\t}\n}\nextend(Component$1.prototype = new Component(), {\n\tconstructor: Component$1,\n\n\tisReactComponent: {},\n\n\treplaceState: function(state, callback) {\n\t\tvar this$1 = this;\n\n\t\tthis.setState(state, callback);\n\t\tfor (var i in this$1.state) {\n\t\t\tif (!(i in state)) {\n\t\t\t\tdelete this$1.state[i];\n\t\t\t}\n\t\t}\n\t},\n\n\tgetDOMNode: function() {\n\t\treturn this.base;\n\t},\n\n\tisMounted: function() {\n\t\treturn !!this.base;\n\t}\n});\n\n\n\nfunction PureComponent(props, context) {\n\tComponent$1.call(this, props, context);\n}\nF.prototype = Component$1.prototype;\nPureComponent.prototype = new F();\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n\n\n\nvar index = {\n\tversion: version,\n\tDOM: DOM,\n\tPropTypes: PropTypes,\n\tChildren: Children,\n\trender: render$1,\n\tcreateClass: createClass,\n\tcreateFactory: createFactory,\n\tcreateElement: createElement,\n\tcloneElement: cloneElement$1,\n\tisValidElement: isValidElement,\n\tfindDOMNode: findDOMNode,\n\tunmountComponentAtNode: unmountComponentAtNode,\n\tComponent: Component$1,\n\tPureComponent: PureComponent,\n\tunstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n};\n\nexport { version, DOM, PropTypes, Children, render$1 as render, createClass, createFactory, createElement, cloneElement$1 as cloneElement, isValidElement, findDOMNode, unmountComponentAtNode, Component$1 as Component, PureComponent, renderSubtreeIntoContainer as unstable_renderSubtreeIntoContainer };export default index;\n//# sourceMappingURL=preact-compat.es.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/preact-compat/dist/preact-compat.es.js\n// module id = 1\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/process/browser.js\n// module id = 2\n// module chunks = 0","var isDate = require('../is_date/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar parseTokenDateTimeDelimeter = /[T ]/\nvar parseTokenPlainTime = /:/\n\n// year tokens\nvar parseTokenYY = /^(\\d{2})$/\nvar parseTokensYYY = [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n]\n\nvar parseTokenYYYY = /^(\\d{4})/\nvar parseTokensYYYYY = [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n]\n\n// date tokens\nvar parseTokenMM = /^-(\\d{2})$/\nvar parseTokenDDD = /^-?(\\d{3})$/\nvar parseTokenMMDD = /^-?(\\d{2})-?(\\d{2})$/\nvar parseTokenWww = /^-?W(\\d{2})$/\nvar parseTokenWwwD = /^-?W(\\d{2})-?(\\d{1})$/\n\n// time tokens\nvar parseTokenHH = /^(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMM = /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMMSS = /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\n\n// timezone tokens\nvar parseTokenTimezone = /([Z+-].*)$/\nvar parseTokenTimezoneZ = /^(Z)$/\nvar parseTokenTimezoneHH = /^([+-])(\\d{2})$/\nvar parseTokenTimezoneHHMM = /^([+-])(\\d{2}):?(\\d{2})$/\n\n/**\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: https://en.wikipedia.org/wiki/ISO_8601\n *\n * If all above fails, the function passes the given argument to Date constructor.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {Object} [options] - the object with options\n * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parse('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Parse string '+02014101',\n * // if the additional number of digits in the extended year format is 1:\n * var result = parse('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction parse (argument, dirtyOptions) {\n if (isDate(argument)) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (typeof argument !== 'string') {\n return new Date(argument)\n }\n\n var options = dirtyOptions || {}\n var additionalDigits = options.additionalDigits\n if (additionalDigits == null) {\n additionalDigits = DEFAULT_ADDITIONAL_DIGITS\n } else {\n additionalDigits = Number(additionalDigits)\n }\n\n var dateStrings = splitDateString(argument)\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n var year = parseYearResult.year\n var restDateString = parseYearResult.restDateString\n\n var date = parseDate(restDateString, year)\n\n if (date) {\n var timestamp = date.getTime()\n var time = 0\n var offset\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time)\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone)\n } else {\n // get offset accurate to hour in timezones that change offset\n offset = new Date(timestamp + time).getTimezoneOffset()\n offset = new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE).getTimezoneOffset()\n }\n\n return new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE)\n } else {\n return new Date(argument)\n }\n}\n\nfunction splitDateString (dateString) {\n var dateStrings = {}\n var array = dateString.split(parseTokenDateTimeDelimeter)\n var timeString\n\n if (parseTokenPlainTime.test(array[0])) {\n dateStrings.date = null\n timeString = array[0]\n } else {\n dateStrings.date = array[0]\n timeString = array[1]\n }\n\n if (timeString) {\n var token = parseTokenTimezone.exec(timeString)\n if (token) {\n dateStrings.time = timeString.replace(token[1], '')\n dateStrings.timezone = token[1]\n } else {\n dateStrings.time = timeString\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear (dateString, additionalDigits) {\n var parseTokenYYY = parseTokensYYY[additionalDigits]\n var parseTokenYYYYY = parseTokensYYYYY[additionalDigits]\n\n var token\n\n // YYYY or ±YYYYY\n token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString)\n if (token) {\n var yearString = token[1]\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n }\n }\n\n // YY or ±YYY\n token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString)\n if (token) {\n var centuryString = token[1]\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n }\n}\n\nfunction parseDate (dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token\n var date\n var month\n var week\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0)\n date.setUTCFullYear(year)\n return date\n }\n\n // YYYY-MM\n token = parseTokenMM.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n date.setUTCFullYear(year, month)\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = parseTokenDDD.exec(dateString)\n if (token) {\n date = new Date(0)\n var dayOfYear = parseInt(token[1], 10)\n date.setUTCFullYear(year, 0, dayOfYear)\n return date\n }\n\n // YYYY-MM-DD or YYYYMMDD\n token = parseTokenMMDD.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n var day = parseInt(token[2], 10)\n date.setUTCFullYear(year, month, day)\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = parseTokenWww.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n return dayOfISOYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = parseTokenWwwD.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n var dayOfWeek = parseInt(token[2], 10) - 1\n return dayOfISOYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime (timeString) {\n var token\n var hours\n var minutes\n\n // hh\n token = parseTokenHH.exec(timeString)\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = parseTokenHHMM.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseFloat(token[2].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE\n }\n\n // hh:mm:ss or hhmmss\n token = parseTokenHHMMSS.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseInt(token[2], 10)\n var seconds = parseFloat(token[3].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE +\n seconds * 1000\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction parseTimezone (timezoneString) {\n var token\n var absoluteOffset\n\n // Z\n token = parseTokenTimezoneZ.exec(timezoneString)\n if (token) {\n return 0\n }\n\n // ±hh\n token = parseTokenTimezoneHH.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = parseTokenTimezoneHHMM.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10)\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n return 0\n}\n\nfunction dayOfISOYear (isoYear, week, day) {\n week = week || 0\n day = day || 0\n var date = new Date(0)\n date.setUTCFullYear(isoYear, 0, 4)\n var fourthOfJanuaryDay = date.getUTCDay() || 7\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n date.setUTCDate(date.getUTCDate() + diff)\n return date\n}\n\nmodule.exports = parse\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/parse/index.js\n// module id = 3\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/fbjs/lib/emptyFunction.js\n// module id = 4\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/fbjs/lib/invariant.js\n// module id = 5\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.omit = omit;\nexports.arraysEqual = arraysEqual;\nvar isElementAnSFC = exports.isElementAnSFC = function isElementAnSFC(element) {\n var isNativeDOMElement = typeof element.type === 'string';\n\n if (isNativeDOMElement) {\n return false;\n }\n\n return !element.type.prototype.isReactComponent;\n};\nfunction omit(obj) {\n var attrs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (attrs.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n\nfunction arraysEqual(a, b) {\n var sameObject = a === b;\n if (sameObject) {\n return true;\n }\n\n var notBothArrays = !Array.isArray(a) || !Array.isArray(b);\n var differentLengths = a.length !== b.length;\n\n if (notBothArrays || differentLengths) {\n return false;\n }\n\n return a.every(function (element, index) {\n return element === b[index];\n });\n}\n\nfunction memoizeString(fn) {\n var cache = {};\n\n return function (str) {\n if (!cache[str]) {\n cache[str] = fn(str);\n }\n return cache[str];\n };\n}\n\nvar hyphenate = exports.hyphenate = memoizeString(function (str) {\n return str.replace(/([A-Z])/g, '-$1').toLowerCase();\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/react-flip-move/lib/helpers.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/defaults.js\n// module id = 8\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/fbjs/lib/warning.js\n// module id = 9\n// module chunks = 0","import axios from 'axios'\n\nexport const queryParse = (search = window.location.search) => {\n if (!search) return {}\n const queryString = search[0] === '?' ? search.substring(1) : search\n const query = {}\n queryString\n .split('&')\n .forEach(queryStr => {\n const [key, value] = queryStr.split('=')\n /* istanbul ignore else */\n if (key) query[decodeURIComponent(key)] = decodeURIComponent(value)\n })\n\n return query\n}\n\nexport const queryStringify = query => {\n const queryString = Object.keys(query)\n .map(key => `${key}=${encodeURIComponent(query[key] || '')}`)\n .join('&')\n return queryString\n}\n\nexport const axiosJSON = axios.create({\n headers: {\n 'Accept': 'application/json'\n }\n})\n\nexport const axiosGithub = axios.create({\n baseURL: 'https://api.github.com',\n headers: {\n 'Accept': 'application/json'\n }\n})\n\nexport const getMetaContent = (name, content) => {\n /* istanbul ignore next */\n content || (content = 'content')\n /* istanbul ignore next */\n const el = document.querySelector(`meta[name='${name}']`)\n /* istanbul ignore next */\n return el && el.getAttribute(content)\n}\n\nexport const formatErrorMsg = err => {\n let msg = 'Error: '\n if (err.response && err.response.data && err.response.data.message) {\n msg += `${err.response.data.message}. `\n err.response.data.errors && (msg += err.response.data.errors.map(e => e.message).join(', '))\n } else {\n msg += err.message\n }\n return msg\n}\n\nexport const hasClassInParent = (element, ...className) => {\n /* istanbul ignore next */\n let yes = false\n /* istanbul ignore next */\n if (typeof element.className === 'undefined') return false\n /* istanbul ignore next */\n const classes = element.className.split(' ')\n /* istanbul ignore next */\n className.forEach((c, i) => {\n /* istanbul ignore next */\n yes = yes || (classes.indexOf(c) >= 0)\n })\n /* istanbul ignore next */\n if (yes) return yes\n /* istanbul ignore next */\n return element.parentNode && hasClassInParent(element.parentNode, className)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./util.js","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/bind.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/core/createError.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/cancel/isCancel.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/cancel/Cancel.js\n// module id = 15\n// module chunks = 0","import React from 'react'\n\nexport default function Avatar (props) {\n const src = props.src\n let className = 'gt-avatar '\n props.className && (className += props.className)\n return (\n <div className={className}>\n <img src={src} alt=\"头像\"/>\n </div>\n )\n}\n\n\n\n// WEBPACK FOOTER //\n// ./component/avatar.jsx","import React from 'react'\n\nexport default function Svg (props) {\n let className = 'gt-ico '\n props.className && (className += props.className)\n return (\n <span className={className}>\n <span className=\"gt-svg\" dangerouslySetInnerHTML={{\n __html: require(`!!raw-loader!../assets/icon/${props.name}.svg`)\n }}/>\n {props.text &&\n <span className=\"gt-ico-text\">{props.text}</span>\n }\n </span>\n )\n}\n\n\n\n// WEBPACK FOOTER //\n// ./component/svg.jsx","import React from 'react'\nimport { render } from 'react-dom'\nimport GitalkComponent from './gitalk'\n\nclass Gitalk {\n constructor (options = {}) {\n this.options = options\n }\n\n render (container) {\n let node = null\n container = container || this.options.container\n\n if (!container) throw new Error(`Container is required: ${container}`)\n\n if (!(container instanceof HTMLElement)) {\n node = document.getElementById(container)\n if (!node) throw new Error(`Container not found, document.getElementById: ${container}`)\n } else {\n node = container\n }\n\n return render(<GitalkComponent options={this.options}/>, node)\n }\n}\n\nmodule.exports = Gitalk\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // https://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // https://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/prop-types/index.js\n// module id = 19\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at https://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 20\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/prop-types/checkPropTypes.js\n// module id = 21\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at https://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 22\n// module chunks = 0","!function() {\n 'use strict';\n function VNode() {}\n function h(nodeName, attributes) {\n var lastSimple, child, simple, i, children = EMPTY_CHILDREN;\n for (i = arguments.length; i-- > 2; ) stack.push(arguments[i]);\n if (attributes && null != attributes.children) {\n if (!stack.length) stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) if ((child = stack.pop()) && void 0 !== child.pop) for (i = child.length; i--; ) stack.push(child[i]); else {\n if (child === !0 || child === !1) child = null;\n if (simple = 'function' != typeof nodeName) if (null == child) child = ''; else if ('number' == typeof child) child = String(child); else if ('string' != typeof child) simple = !1;\n if (simple && lastSimple) children[children.length - 1] += child; else if (children === EMPTY_CHILDREN) children = [ child ]; else children.push(child);\n lastSimple = simple;\n }\n var p = new VNode();\n p.nodeName = nodeName;\n p.children = children;\n p.attributes = null == attributes ? void 0 : attributes;\n p.key = null == attributes ? void 0 : attributes.key;\n if (void 0 !== options.vnode) options.vnode(p);\n return p;\n }\n function extend(obj, props) {\n for (var i in props) obj[i] = props[i];\n return obj;\n }\n function cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n }\n function enqueueRender(component) {\n if (!component.__d && (component.__d = !0) && 1 == items.push(component)) (options.debounceRendering || setTimeout)(rerender);\n }\n function rerender() {\n var p, list = items;\n items = [];\n while (p = list.pop()) if (p.__d) renderComponent(p);\n }\n function isSameNodeType(node, vnode, hydrating) {\n if ('string' == typeof vnode || 'number' == typeof vnode) return void 0 !== node.splitText;\n if ('string' == typeof vnode.nodeName) return !node._componentConstructor && isNamedNode(node, vnode.nodeName); else return hydrating || node._componentConstructor === vnode.nodeName;\n }\n function isNamedNode(node, nodeName) {\n return node.__n === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n }\n function getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n var defaultProps = vnode.nodeName.defaultProps;\n if (void 0 !== defaultProps) for (var i in defaultProps) if (void 0 === props[i]) props[i] = defaultProps[i];\n return props;\n }\n function createNode(nodeName, isSvg) {\n var node = isSvg ? document.createElementNS('https://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n node.__n = nodeName;\n return node;\n }\n function removeNode(node) {\n if (node.parentNode) node.parentNode.removeChild(node);\n }\n function setAccessor(node, name, old, value, isSvg) {\n if ('className' === name) name = 'class';\n if ('key' === name) ; else if ('ref' === name) {\n if (old) old(null);\n if (value) value(node);\n } else if ('class' === name && !isSvg) node.className = value || ''; else if ('style' === name) {\n if (!value || 'string' == typeof value || 'string' == typeof old) node.style.cssText = value || '';\n if (value && 'object' == typeof value) {\n if ('string' != typeof old) for (var i in old) if (!(i in value)) node.style[i] = '';\n for (var i in value) node.style[i] = 'number' == typeof value[i] && IS_NON_DIMENSIONAL.test(i) === !1 ? value[i] + 'px' : value[i];\n }\n } else if ('dangerouslySetInnerHTML' === name) {\n if (value) node.innerHTML = value.__html || '';\n } else if ('o' == name[0] && 'n' == name[1]) {\n var useCapture = name !== (name = name.replace(/Capture$/, ''));\n name = name.toLowerCase().substring(2);\n if (value) {\n if (!old) node.addEventListener(name, eventProxy, useCapture);\n } else node.removeEventListener(name, eventProxy, useCapture);\n (node.__l || (node.__l = {}))[name] = value;\n } else if ('list' !== name && 'type' !== name && !isSvg && name in node) {\n setProperty(node, name, null == value ? '' : value);\n if (null == value || value === !1) node.removeAttribute(name);\n } else {\n var ns = isSvg && name !== (name = name.replace(/^xlink\\:?/, ''));\n if (null == value || value === !1) if (ns) node.removeAttributeNS('https://www.w3.org/1999/xlink', name.toLowerCase()); else node.removeAttribute(name); else if ('function' != typeof value) if (ns) node.setAttributeNS('https://www.w3.org/1999/xlink', name.toLowerCase(), value); else node.setAttribute(name, value);\n }\n }\n function setProperty(node, name, value) {\n try {\n node[name] = value;\n } catch (e) {}\n }\n function eventProxy(e) {\n return this.__l[e.type](options.event && options.event(e) || e);\n }\n function flushMounts() {\n var c;\n while (c = mounts.pop()) {\n if (options.afterMount) options.afterMount(c);\n if (c.componentDidMount) c.componentDidMount();\n }\n }\n function diff(dom, vnode, context, mountAll, parent, componentRoot) {\n if (!diffLevel++) {\n isSvgMode = null != parent && void 0 !== parent.ownerSVGElement;\n hydrating = null != dom && !('__preactattr_' in dom);\n }\n var ret = idiff(dom, vnode, context, mountAll, componentRoot);\n if (parent && ret.parentNode !== parent) parent.appendChild(ret);\n if (!--diffLevel) {\n hydrating = !1;\n if (!componentRoot) flushMounts();\n }\n return ret;\n }\n function idiff(dom, vnode, context, mountAll, componentRoot) {\n var out = dom, prevSvgMode = isSvgMode;\n if (null == vnode) vnode = '';\n if ('string' == typeof vnode) {\n if (dom && void 0 !== dom.splitText && dom.parentNode && (!dom._component || componentRoot)) {\n if (dom.nodeValue != vnode) dom.nodeValue = vnode;\n } else {\n out = document.createTextNode(vnode);\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n recollectNodeTree(dom, !0);\n }\n }\n out.__preactattr_ = !0;\n return out;\n }\n if ('function' == typeof vnode.nodeName) return buildComponentFromVNode(dom, vnode, context, mountAll);\n isSvgMode = 'svg' === vnode.nodeName ? !0 : 'foreignObject' === vnode.nodeName ? !1 : isSvgMode;\n if (!dom || !isNamedNode(dom, String(vnode.nodeName))) {\n out = createNode(String(vnode.nodeName), isSvgMode);\n if (dom) {\n while (dom.firstChild) out.appendChild(dom.firstChild);\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n recollectNodeTree(dom, !0);\n }\n }\n var fc = out.firstChild, props = out.__preactattr_ || (out.__preactattr_ = {}), vchildren = vnode.children;\n if (!hydrating && vchildren && 1 === vchildren.length && 'string' == typeof vchildren[0] && null != fc && void 0 !== fc.splitText && null == fc.nextSibling) {\n if (fc.nodeValue != vchildren[0]) fc.nodeValue = vchildren[0];\n } else if (vchildren && vchildren.length || null != fc) innerDiffNode(out, vchildren, context, mountAll, hydrating || null != props.dangerouslySetInnerHTML);\n diffAttributes(out, vnode.attributes, props);\n isSvgMode = prevSvgMode;\n return out;\n }\n function innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n var j, c, vchild, child, originalChildren = dom.childNodes, children = [], keyed = {}, keyedLen = 0, min = 0, len = originalChildren.length, childrenLen = 0, vlen = vchildren ? vchildren.length : 0;\n if (0 !== len) for (var i = 0; i < len; i++) {\n var _child = originalChildren[i], props = _child.__preactattr_, key = vlen && props ? _child._component ? _child._component.__k : props.key : null;\n if (null != key) {\n keyedLen++;\n keyed[key] = _child;\n } else if (props || (void 0 !== _child.splitText ? isHydrating ? _child.nodeValue.trim() : !0 : isHydrating)) children[childrenLen++] = _child;\n }\n if (0 !== vlen) for (var i = 0; i < vlen; i++) {\n vchild = vchildren[i];\n child = null;\n var key = vchild.key;\n if (null != key) {\n if (keyedLen && void 0 !== keyed[key]) {\n child = keyed[key];\n keyed[key] = void 0;\n keyedLen--;\n }\n } else if (!child && min < childrenLen) for (j = min; j < childrenLen; j++) if (void 0 !== children[j] && isSameNodeType(c = children[j], vchild, isHydrating)) {\n child = c;\n children[j] = void 0;\n if (j === childrenLen - 1) childrenLen--;\n if (j === min) min++;\n break;\n }\n child = idiff(child, vchild, context, mountAll);\n if (child && child !== dom) if (i >= len) dom.appendChild(child); else if (child !== originalChildren[i]) if (child === originalChildren[i + 1]) removeNode(originalChildren[i]); else dom.insertBefore(child, originalChildren[i] || null);\n }\n if (keyedLen) for (var i in keyed) if (void 0 !== keyed[i]) recollectNodeTree(keyed[i], !1);\n while (min <= childrenLen) if (void 0 !== (child = children[childrenLen--])) recollectNodeTree(child, !1);\n }\n function recollectNodeTree(node, unmountOnly) {\n var component = node._component;\n if (component) unmountComponent(component); else {\n if (null != node.__preactattr_ && node.__preactattr_.ref) node.__preactattr_.ref(null);\n if (unmountOnly === !1 || null == node.__preactattr_) removeNode(node);\n removeChildren(node);\n }\n }\n function removeChildren(node) {\n node = node.lastChild;\n while (node) {\n var next = node.previousSibling;\n recollectNodeTree(node, !0);\n node = next;\n }\n }\n function diffAttributes(dom, attrs, old) {\n var name;\n for (name in old) if ((!attrs || null == attrs[name]) && null != old[name]) setAccessor(dom, name, old[name], old[name] = void 0, isSvgMode);\n for (name in attrs) if (!('children' === name || 'innerHTML' === name || name in old && attrs[name] === ('value' === name || 'checked' === name ? dom[name] : old[name]))) setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n }\n function collectComponent(component) {\n var name = component.constructor.name;\n (components[name] || (components[name] = [])).push(component);\n }\n function createComponent(Ctor, props, context) {\n var inst, list = components[Ctor.name];\n if (Ctor.prototype && Ctor.prototype.render) {\n inst = new Ctor(props, context);\n Component.call(inst, props, context);\n } else {\n inst = new Component(props, context);\n inst.constructor = Ctor;\n inst.render = doRender;\n }\n if (list) for (var i = list.length; i--; ) if (list[i].constructor === Ctor) {\n inst.__b = list[i].__b;\n list.splice(i, 1);\n break;\n }\n return inst;\n }\n function doRender(props, state, context) {\n return this.constructor(props, context);\n }\n function setComponentProps(component, props, opts, context, mountAll) {\n if (!component.__x) {\n component.__x = !0;\n if (component.__r = props.ref) delete props.ref;\n if (component.__k = props.key) delete props.key;\n if (!component.base || mountAll) {\n if (component.componentWillMount) component.componentWillMount();\n } else if (component.componentWillReceiveProps) component.componentWillReceiveProps(props, context);\n if (context && context !== component.context) {\n if (!component.__c) component.__c = component.context;\n component.context = context;\n }\n if (!component.__p) component.__p = component.props;\n component.props = props;\n component.__x = !1;\n if (0 !== opts) if (1 === opts || options.syncComponentUpdates !== !1 || !component.base) renderComponent(component, 1, mountAll); else enqueueRender(component);\n if (component.__r) component.__r(component);\n }\n }\n function renderComponent(component, opts, mountAll, isChild) {\n if (!component.__x) {\n var rendered, inst, cbase, props = component.props, state = component.state, context = component.context, previousProps = component.__p || props, previousState = component.__s || state, previousContext = component.__c || context, isUpdate = component.base, nextBase = component.__b, initialBase = isUpdate || nextBase, initialChildComponent = component._component, skip = !1;\n if (isUpdate) {\n component.props = previousProps;\n component.state = previousState;\n component.context = previousContext;\n if (2 !== opts && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === !1) skip = !0; else if (component.componentWillUpdate) component.componentWillUpdate(props, state, context);\n component.props = props;\n component.state = state;\n component.context = context;\n }\n component.__p = component.__s = component.__c = component.__b = null;\n component.__d = !1;\n if (!skip) {\n rendered = component.render(props, state, context);\n if (component.getChildContext) context = extend(extend({}, context), component.getChildContext());\n var toUnmount, base, childComponent = rendered && rendered.nodeName;\n if ('function' == typeof childComponent) {\n var childProps = getNodeProps(rendered);\n inst = initialChildComponent;\n if (inst && inst.constructor === childComponent && childProps.key == inst.__k) setComponentProps(inst, childProps, 1, context, !1); else {\n toUnmount = inst;\n component._component = inst = createComponent(childComponent, childProps, context);\n inst.__b = inst.__b || nextBase;\n inst.__u = component;\n setComponentProps(inst, childProps, 0, context, !1);\n renderComponent(inst, 1, mountAll, !0);\n }\n base = inst.base;\n } else {\n cbase = initialBase;\n toUnmount = initialChildComponent;\n if (toUnmount) cbase = component._component = null;\n if (initialBase || 1 === opts) {\n if (cbase) cbase._component = null;\n base = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, !0);\n }\n }\n if (initialBase && base !== initialBase && inst !== initialChildComponent) {\n var baseParent = initialBase.parentNode;\n if (baseParent && base !== baseParent) {\n baseParent.replaceChild(base, initialBase);\n if (!toUnmount) {\n initialBase._component = null;\n recollectNodeTree(initialBase, !1);\n }\n }\n }\n if (toUnmount) unmountComponent(toUnmount);\n component.base = base;\n if (base && !isChild) {\n var componentRef = component, t = component;\n while (t = t.__u) (componentRef = t).base = base;\n base._component = componentRef;\n base._componentConstructor = componentRef.constructor;\n }\n }\n if (!isUpdate || mountAll) mounts.unshift(component); else if (!skip) {\n flushMounts();\n if (component.componentDidUpdate) component.componentDidUpdate(previousProps, previousState, previousContext);\n if (options.afterUpdate) options.afterUpdate(component);\n }\n if (null != component.__h) while (component.__h.length) component.__h.pop().call(component);\n if (!diffLevel && !isChild) flushMounts();\n }\n }\n function buildComponentFromVNode(dom, vnode, context, mountAll) {\n var c = dom && dom._component, originalComponent = c, oldDom = dom, isDirectOwner = c && dom._componentConstructor === vnode.nodeName, isOwner = isDirectOwner, props = getNodeProps(vnode);\n while (c && !isOwner && (c = c.__u)) isOwner = c.constructor === vnode.nodeName;\n if (c && isOwner && (!mountAll || c._component)) {\n setComponentProps(c, props, 3, context, mountAll);\n dom = c.base;\n } else {\n if (originalComponent && !isDirectOwner) {\n unmountComponent(originalComponent);\n dom = oldDom = null;\n }\n c = createComponent(vnode.nodeName, props, context);\n if (dom && !c.__b) {\n c.__b = dom;\n oldDom = null;\n }\n setComponentProps(c, props, 1, context, mountAll);\n dom = c.base;\n if (oldDom && dom !== oldDom) {\n oldDom._component = null;\n recollectNodeTree(oldDom, !1);\n }\n }\n return dom;\n }\n function unmountComponent(component) {\n if (options.beforeUnmount) options.beforeUnmount(component);\n var base = component.base;\n component.__x = !0;\n if (component.componentWillUnmount) component.componentWillUnmount();\n component.base = null;\n var inner = component._component;\n if (inner) unmountComponent(inner); else if (base) {\n if (base.__preactattr_ && base.__preactattr_.ref) base.__preactattr_.ref(null);\n component.__b = base;\n removeNode(base);\n collectComponent(component);\n removeChildren(base);\n }\n if (component.__r) component.__r(null);\n }\n function Component(props, context) {\n this.__d = !0;\n this.context = context;\n this.props = props;\n this.state = this.state || {};\n }\n function render(vnode, parent, merge) {\n return diff(merge, vnode, {}, !1, parent, !1);\n }\n var options = {};\n var stack = [];\n var EMPTY_CHILDREN = [];\n var IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n var items = [];\n var mounts = [];\n var diffLevel = 0;\n var isSvgMode = !1;\n var hydrating = !1;\n var components = {};\n extend(Component.prototype, {\n setState: function(state, callback) {\n var s = this.state;\n if (!this.__s) this.__s = extend({}, s);\n extend(s, 'function' == typeof state ? state(s, this.props) : state);\n if (callback) (this.__h = this.__h || []).push(callback);\n enqueueRender(this);\n },\n forceUpdate: function(callback) {\n if (callback) (this.__h = this.__h || []).push(callback);\n renderComponent(this, 2);\n },\n render: function() {}\n });\n var preact = {\n h: h,\n createElement: h,\n cloneElement: cloneElement,\n Component: Component,\n render: render,\n rerender: rerender,\n options: options\n };\n if ('undefined' != typeof module) module.exports = preact; else self.preact = preact;\n}();\n//# sourceMappingURL=preact.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/preact/dist/preact.js\n// module id = 23\n// module chunks = 0","import React, { Component } from 'react'\nimport FlipMove from 'react-flip-move'\nimport autosize from 'autosize'\n\nimport i18n from './i18n'\nimport './style/index.styl'\nimport {\n queryParse,\n queryStringify,\n axiosJSON,\n axiosGithub,\n getMetaContent,\n formatErrorMsg,\n hasClassInParent\n} from './util'\nimport Avatar from './component/avatar'\nimport Button from './component/button'\nimport Action from './component/action'\nimport Comment from './component/comment'\nimport Svg from './component/svg'\nimport { GT_ACCESS_TOKEN, GT_VERSION, GT_COMMENT } from './const'\nimport QLGetComments from './graphql/getComments'\n\nclass GitalkComponent extends Component {\n state = {\n user: null,\n issue: null,\n comments: [],\n localComments: [],\n comment: '',\n page: 1,\n pagerDirection: 'last',\n cursor: null,\n\n isNoInit: false,\n isIniting: true,\n isCreating: false,\n isLoading: false,\n isLoadMore: false,\n isLoadOver: false,\n isIssueCreating: false,\n isPopupVisible: false,\n isInputFocused: false,\n\n isOccurError: false,\n errorMsg: '',\n }\n constructor (props) {\n super(props)\n this.options = Object.assign({}, {\n id: location.href,\n labels: ['Gitalk'],\n title: document.title,\n body: '', // location.href + header.meta[description]\n language: navigator.language || navigator.userLanguage,\n perPage: 10,\n pagerDirection: 'last', // last or first\n createIssueManually: false,\n distractionFreeMode: false,\n proxy: 'https://cors-anywhere.herokuapp.com/https://github.com/login/oauth/access_token',\n flipMoveOptions: {\n staggerDelayBy: 150,\n appearAnimation: 'accordionVertical',\n enterAnimation: 'accordionVertical',\n leaveAnimation: 'accordionVertical',\n },\n enableHotKey: true,\n\n url: location.href,\n }, props.options)\n\n this.state.pagerDirection = this.options.pagerDirection\n const storedComment = localStorage.getItem(GT_COMMENT)\n if (storedComment) {\n this.state.comment = decodeURIComponent(storedComment)\n localStorage.removeItem(GT_COMMENT)\n }\n\n const query = queryParse()\n if (query.code) {\n const code = query.code\n delete query.code\n const replacedUrl = `${location.origin}${location.pathname}${queryStringify(query)}${location.hash}`\n history.replaceState(null, null, replacedUrl)\n this.options = Object.assign({}, this.options, {\n url: replacedUrl,\n id: replacedUrl\n }, props.options)\n\n axiosJSON.post(this.options.proxy, {\n code,\n client_id: this.options.clientID,\n client_secret: this.options.clientSecret\n }).then(res => {\n if (res.data && res.data.access_token) {\n this.accessToken = res.data.access_token\n\n this.getInit()\n .then(() => this.setState({ isIniting: false }))\n .catch(err => {\n console.log('err:', err)\n this.setState({\n isIniting: false,\n isOccurError: true,\n errorMsg: formatErrorMsg(err)\n })\n })\n } else {\n // no access_token\n console.log('res.data err:', res.data)\n this.setState({\n isOccurError: true,\n errorMsg: formatErrorMsg(new Error('no access token'))\n })\n }\n }).catch(err => {\n console.log('err: ', err)\n this.setState({\n isOccurError: true,\n errorMsg: formatErrorMsg(err)\n })\n })\n } else {\n this.getInit()\n .then(() => this.setState({ isIniting: false }))\n .catch(err => {\n console.log('err:', err)\n this.setState({\n isIniting: false,\n isOccurError: true,\n errorMsg: formatErrorMsg(err)\n })\n })\n }\n\n this.i18n = i18n(this.options.language)\n }\n componentDidUpdate () {\n this.commentEL && autosize(this.commentEL)\n }\n\n get accessToken () {\n return this._accessToke || localStorage.getItem(GT_ACCESS_TOKEN)\n }\n set accessToken (token) {\n localStorage.setItem(GT_ACCESS_TOKEN, token)\n this._accessToken = token\n }\n get loginLink () {\n const githubOauthUrl = 'https://github.com/login/oauth/authorize'\n const { clientID } = this.options\n const query = {\n client_id: clientID,\n redirect_uri: location.href,\n scope: 'public_repo'\n }\n return `${githubOauthUrl}?${queryStringify(query)}`\n }\n\n getInit () {\n return this.getUserInfo().then(() => this.getIssue()).then(issue => this.getComments(issue))\n }\n getUserInfo () {\n return axiosGithub.get('/user', {\n headers: {\n Authorization: `token ${this.accessToken}`\n }\n }).then(res => {\n this.setState({ user: res.data })\n }).catch(err => {\n this.logout()\n })\n }\n getIssue () {\n const { issue } = this.state\n if (issue) {\n this.setState({ isNoInit: false })\n return Promise.resolve(issue)\n }\n\n const { owner, repo, id, labels, clientID, clientSecret } = this.options\n\n return axiosGithub.get(`/repos/${owner}/${repo}/issues`, {\n params: {\n client_id: clientID,\n client_secret: clientSecret,\n labels: labels.concat(id).join(',')\n }\n }).then(res => {\n const { admin, createIssueManually } = this.options\n const { user } = this.state\n let isNoInit = false\n let issue = null\n if (!(res && res.data && res.data.length)) {\n if (!createIssueManually && user && ~admin.indexOf(user.login)) {\n return this.createIssue()\n }\n\n isNoInit = true\n } else {\n issue = res.data[0]\n }\n this.setState({ issue, isNoInit })\n return issue\n })\n }\n createIssue () {\n const { owner, repo, title, body, id, labels, url } = this.options\n return axiosGithub.post(`/repos/${owner}/${repo}/issues`, {\n title,\n labels: labels.concat(id),\n body: body || `${url} \\n\\n ${\n getMetaContent('description') ||\n getMetaContent('description', 'og:description') || ''\n }`\n }, {\n headers: {\n Authorization: `token ${this.accessToken}`\n }\n }).then(res => {\n this.setState({ issue: res.data })\n return res.data\n })\n }\n // Get comments via v3 api, don't require login, but sorting feature is disable\n getCommentsV3 = (issue) => {\n const { clientID, clientSecret, perPage } = this.options\n const { page } = this.state\n return this.getIssue()\n .then(issue => {\n if (!issue) return\n\n return axiosGithub.get(issue.comments_url, {\n headers: {\n Accept: 'application/vnd.github.html+json'\n },\n params: {\n client_id: clientID,\n client_secret: clientSecret,\n per_page: perPage,\n page\n }\n }).then(res => {\n const { comments, issue } = this.state\n let isLoadOver = false\n const cs = comments.concat(res.data)\n if (cs.length >= issue.comments || res.data.length < perPage) {\n isLoadOver = true\n }\n this.setState({\n comments: cs,\n isLoadOver,\n page: page + 1\n })\n return cs\n })\n })\n }\n getComments (issue) {\n if (!issue) return\n // Get comments via v4 graphql api, login required and sorting feature is available\n if (this.accessToken) return QLGetComments.call(this, issue)\n return this.getCommentsV3(issue)\n }\n\n createComment () {\n const { comment, localComments } = this.state\n\n return this.getIssue()\n .then(issue => axiosGithub.post(issue.comments_url, {\n body: comment\n }, {\n headers: {\n Accept: 'application/vnd.github.html+json',\n Authorization: `token ${this.accessToken}`\n }\n }))\n .then(res => {\n this.setState({\n comment: '',\n localComments: localComments.concat(res.data)\n })\n })\n }\n logout () {\n this.setState({ user: null })\n localStorage.removeItem(GT_ACCESS_TOKEN)\n }\n getRef = e => {\n this.publicBtnEL = e\n }\n reply (replyComment) {\n const { comment } = this.state\n const replyCommentBody = replyComment.body\n let replyCommentArray = replyCommentBody.split('\\n')\n replyCommentArray.unshift(`@${replyComment.user.login}`)\n replyCommentArray = replyCommentArray.map(t => `> ${t}`)\n replyCommentArray.push('')\n if (comment) replyCommentArray.unshift('')\n this.setState({comment: comment + replyCommentArray.join('\\n')}, () => {\n autosize.update(this.commentEL)\n this.commentEL.focus()\n })\n }\n\n handlePopup = e => {\n e.preventDefault()\n e.stopPropagation()\n const isVisible = !this.state.isPopupVisible\n const hideHandle = e1 => {\n if (hasClassInParent(e1.target, 'gt-user', 'gt-popup')) {\n return\n }\n document.removeEventListener('click', hideHandle)\n this.setState({ isPopupVisible: false })\n }\n this.setState({ isPopupVisible: isVisible })\n if (isVisible) {\n document.addEventListener('click', hideHandle)\n } else {\n document.removeEventListener('click', hideHandle)\n }\n }\n handleLogin = () => {\n const { comment } = this.state\n localStorage.setItem(GT_COMMENT, encodeURIComponent(comment))\n location.href = this.loginLink\n }\n handleIssueCreate = () => {\n this.setState({ isIssueCreating: true })\n this.createIssue().then(issue => {\n this.setState({\n isIssueCreating: false,\n isOccurError: false\n })\n return this.getComments(issue)\n }).catch(err => {\n this.setState({\n isIssueCreating: false,\n isOccurError: true,\n errorMsg: formatErrorMsg(err)\n })\n })\n }\n handleCommentCreate = e => {\n if (!this.state.comment.length) {\n e && e.preventDefault()\n this.commentEL.focus()\n return\n }\n this.setState({ isCreating: true })\n this.createComment()\n .then(() => this.setState({\n isCreating: false,\n isOccurError: false\n }))\n .catch(err => {\n this.setState({\n isCreating: false,\n isOccurError: true,\n errorMsg: formatErrorMsg(err)\n })\n })\n }\n handleCommentLoad = () => {\n const { issue, isLoadMore } = this.state\n if (isLoadMore) return\n this.setState({ isLoadMore: true })\n this.getComments(issue).then(() => this.setState({ isLoadMore: false }))\n }\n handleCommentChange = e => this.setState({ comment: e.target.value })\n handleLogout = () => {\n this.logout()\n location.reload()\n }\n handleCommentFocus = e => {\n const { distractionFreeMode } = this.options\n if (!distractionFreeMode) return e.preventDefault()\n this.setState({ isInputFocused: true })\n }\n handleCommentBlur = e => {\n const { distractionFreeMode } = this.options\n if (!distractionFreeMode) return e.preventDefault()\n this.setState({ isInputFocused: false })\n }\n handleSort = direction => e => {\n this.setState({ pagerDirection: direction })\n }\n handleCommentKeyDown = e => {\n const { enableHotKey } = this.options\n if (enableHotKey && (e.metaKey || e.ctrlKey) && e.keyCode === 13) {\n this.publicBtnEL && this.publicBtnEL.focus()\n this.handleCommentCreate()\n }\n }\n\n initing () {\n return <div className=\"gt-initing\">\n <i className=\"gt-loader\"/>\n <p className=\"gt-initing-text\">{this.i18n.t('init')}</p>\n </div>\n }\n noInit () {\n const { user, isIssueCreating } = this.state\n const { owner, repo, admin } = this.options\n return (\n <div className=\"gt-no-init\" key=\"no-init\">\n <p dangerouslySetInnerHTML={{\n __html: this.i18n.t('no-found-related', {\n link: `<a href=\"https://github.com/${owner}/${repo}/issues\">Issues</a>`\n })\n }}/>\n <p>{this.i18n.t('please-contact', { user: [].concat(admin).map(u => `@${u}`).join(' ') })}</p>\n {(user && ~[].concat(admin).indexOf(user.login)) ? <p>\n <Button onClick={this.handleIssueCreate} isLoading={isIssueCreating} text={this.i18n.t('init-issue')} />\n </p> : null}\n {!user && <Button className=\"gt-btn-login\" onClick={this.handleLogin} text={this.i18n.t('login-with-github')} />}\n </div>\n )\n }\n header () {\n const { user, comment, isCreating } = this.state\n return (\n <div className=\"gt-header\" key=\"header\">\n {user ?\n <Avatar className=\"gt-header-avatar\" src={user.avatar_url} /> :\n <a className=\"gt-avatar-github\" onMouseDown={this.handleLogin}>\n <Svg className=\"gt-ico-github\" name=\"github\"/>\n </a>\n }\n <div className=\"gt-header-comment\">\n <textarea\n ref={t => { this.commentEL = t }}\n className=\"gt-header-textarea\"\n value={comment}\n onChange={this.handleCommentChange}\n onFocus={this.handleCommentFocus}\n onBlur={this.handleCommentBlur}\n onKeyDown={this.handleCommentKeyDown}\n placeholder={this.i18n.t('leave-a-comment')}\n />\n <div className=\"gt-header-controls\">\n <a className=\"gt-header-controls-tip\" href=\"https://guides.github.com/features/mastering-markdown/\" target=\"_blank\">\n <Svg className=\"gt-ico-tip\" name=\"tip\" text={this.i18n.t('support-markdown')}/>\n </a>\n {user && <Button\n getRef={this.getRef}\n className=\"gt-btn-public\"\n onMouseDown={this.handleCommentCreate}\n text={this.i18n.t('comment')}\n isLoading={isCreating}\n />}\n {!user && <Button className=\"gt-btn-login\" onMouseDown={this.handleLogin} text={this.i18n.t('login-with-github')} />}\n </div>\n </div>\n </div>\n )\n }\n comments () {\n const { user, comments, localComments, isLoadOver, isLoadMore, pagerDirection } = this.state\n const { language, flipMoveOptions, admin } = this.options\n const totalComments = comments.concat(localComments)\n if (pagerDirection === 'last' && this.accessToken) {\n totalComments.reverse()\n }\n return (\n <div className=\"gt-comments\" key=\"comments\">\n <FlipMove {...flipMoveOptions}>\n {totalComments.map(c => (\n <Comment\n comment={c}\n key={c.id}\n user={user}\n language={language}\n commentedText={this.i18n.t('commented')}\n admin={admin}\n replyCallback={this.reply.bind(this, c)}\n />\n ))}\n </FlipMove>\n {!totalComments.length && <p className=\"gt-comments-null\">{this.i18n.t('first-comment-person')}</p>}\n {(!isLoadOver && totalComments.length) ? <div className=\"gt-comments-controls\">\n <Button className=\"gt-btn-loadmore\" onClick={this.handleCommentLoad} isLoading={isLoadMore} text={this.i18n.t('load-more')} />\n </div> : null}\n </div>\n )\n }\n meta () {\n const { user, issue, isPopupVisible, pagerDirection, localComments } = this.state\n const cnt = (issue && issue.comments) + localComments.length\n const isDesc = pagerDirection === 'last'\n return (\n <div className=\"gt-meta\" key=\"meta\" >\n <span className=\"gt-counts\" dangerouslySetInnerHTML={{\n __html: this.i18n.t('counts', {\n counts: `<a class=\"gt-link gt-link-counts\" href=\"${issue && issue.html_url}\" target=\"_blank\">${cnt}</a>`,\n smart_count: cnt\n })\n }}/>\n {isPopupVisible &&\n <div className=\"gt-popup\">\n {user ? <Action className={`gt-action-sortasc${!isDesc ? ' is--active' : ''}`} onClick={this.handleSort('first')} text={this.i18n.t('sort-asc')}/> : null }\n {user ? <Action className={`gt-action-sortdesc${isDesc ? ' is--active' : ''}`} onClick={this.handleSort('last')} text={this.i18n.t('sort-desc')}/> : null }\n {user ?\n <Action className=\"gt-action-logout\" onClick={this.handleLogout} text={this.i18n.t('logout')}/> :\n <a className=\"gt-action gt-action-login\" onMouseDown={this.handleLogin}>{this.i18n.t('login-with-github')}</a>\n }\n <div className=\"gt-copyright\">\n <a className=\"gt-link gt-link-project\" href=\"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/gitalk/gitalk\" target=\"_blank\">Gitalk</a>\n <span className=\"gt-version\">{GT_VERSION}</span>\n </div>\n </div>\n }\n <div className=\"gt-user\">\n {user ?\n <div className={isPopupVisible ? 'gt-user-inner is--poping' : 'gt-user-inner'} onClick={this.handlePopup}>\n <span className=\"gt-user-name\">{user.login}</span>\n <Svg className=\"gt-ico-arrdown\" name=\"arrow_down\"/>\n </div> :\n <div className={isPopupVisible ? 'gt-user-inner is--poping' : 'gt-user-inner'} onClick={this.handlePopup}>\n <span className=\"gt-user-name\">{this.i18n.t('anonymous')}</span>\n <Svg className=\"gt-ico-arrdown\" name=\"arrow_down\"/>\n </div>\n }\n </div>\n </div>\n )\n }\n\n render () {\n const { isIniting, isNoInit, isOccurError, errorMsg, isInputFocused } = this.state\n return (\n <div className={`gt-container${isInputFocused ? ' gt-input-focused' : ''}`}>\n {isIniting && this.initing()}\n {!isIniting && (\n isNoInit ? [\n ] : [\n this.meta()\n ])\n }\n {isOccurError && <div className=\"gt-error\">\n {errorMsg}\n </div>}\n {!isIniting && (\n isNoInit ? [\n this.noInit()\n ] : [\n this.header(),\n this.comments()\n ])\n }\n </div>\n )\n }\n}\n\nmodule.exports = GitalkComponent\n\n\n\n// WEBPACK FOOTER //\n// ./gitalk.jsx","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _FlipMove = require('./FlipMove');\n\nvar _FlipMove2 = _interopRequireDefault(_FlipMove);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _FlipMove2.default;\n/**\n * React Flip Move\n * (c) 2016-present Joshua Comeau\n */\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/react-flip-move/lib/index.js\n// module id = 25\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nrequire('./polyfills');\n\nvar _propConverter = require('./prop-converter');\n\nvar _propConverter2 = _interopRequireDefault(_propConverter);\n\nvar _domManipulation = require('./dom-manipulation');\n\nvar _helpers = require('./helpers');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n/**\n * React Flip Move\n * (c) 2016-present Joshua Comeau\n *\n * For information on how this code is laid out, check out CODE_TOUR.md\n */\n\n/* eslint-disable react/prop-types */\n\nvar transitionEnd = (0, _domManipulation.whichTransitionEvent)();\nvar noBrowserSupport = !transitionEnd;\n\nfunction getKey(childData) {\n return childData.key || '';\n}\n\nvar FlipMove = function (_Component) {\n _inherits(FlipMove, _Component);\n\n function FlipMove() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, FlipMove);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = FlipMove.__proto__ || Object.getPrototypeOf(FlipMove)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n children: _react.Children.toArray(_this.props.children).map(function (element) {\n return _extends({}, element, {\n element: element,\n appearing: true\n });\n })\n }, _this.childrenData = {}, _this.parentData = {\n domNode: null,\n boundingBox: null\n }, _this.heightPlaceholderData = {\n domNode: null\n }, _this.remainingAnimations = 0, _this.childrenToAnimate = [], _this.runAnimation = function () {\n var dynamicChildren = _this.state.children.filter(_this.doesChildNeedToBeAnimated);\n\n dynamicChildren.forEach(function (child, n) {\n _this.remainingAnimations += 1;\n _this.childrenToAnimate.push(getKey(child));\n _this.animateChild(child, n);\n });\n\n if (typeof _this.props.onStartAll === 'function') {\n _this.callChildrenHook(_this.props.onStartAll);\n }\n }, _this.doesChildNeedToBeAnimated = function (child) {\n // If the child doesn't have a key, it's an immovable child (one that we\n // do not want to do FLIP stuff to.)\n if (!getKey(child)) {\n return false;\n }\n\n var childData = _this.getChildData(getKey(child));\n var childDomNode = childData.domNode;\n var childBoundingBox = childData.boundingBox;\n var parentBoundingBox = _this.parentData.boundingBox;\n\n if (!childDomNode) {\n return false;\n }\n\n var _this$props = _this.props,\n appearAnimation = _this$props.appearAnimation,\n enterAnimation = _this$props.enterAnimation,\n leaveAnimation = _this$props.leaveAnimation,\n getPosition = _this$props.getPosition;\n\n\n var isAppearingWithAnimation = child.appearing && appearAnimation;\n var isEnteringWithAnimation = child.entering && enterAnimation;\n var isLeavingWithAnimation = child.leaving && leaveAnimation;\n\n if (isAppearingWithAnimation || isEnteringWithAnimation || isLeavingWithAnimation) {\n return true;\n }\n\n // If it isn't entering/leaving, we want to animate it if it's\n // on-screen position has changed.\n\n var _getPositionDelta = (0, _domManipulation.getPositionDelta)({\n childDomNode: childDomNode,\n childBoundingBox: childBoundingBox,\n parentBoundingBox: parentBoundingBox,\n getPosition: getPosition\n }),\n _getPositionDelta2 = _slicedToArray(_getPositionDelta, 2),\n dX = _getPositionDelta2[0],\n dY = _getPositionDelta2[1];\n\n return dX !== 0 || dY !== 0;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n // Copy props.children into state.\n // To understand why this is important (and not an anti-pattern), consider\n // how \"leave\" animations work. An item has \"left\" when the component\n // receives a new set of props that do NOT contain the item.\n // If we just render the props as-is, the item would instantly disappear.\n // We want to keep the item rendered for a little while, until its animation\n // can complete. Because we cannot mutate props, we make `state` the source\n // of truth.\n\n\n // FlipMove needs to know quite a bit about its children in order to do\n // its job. We store these as a property on the instance. We're not using\n // state, because we don't want changes to trigger re-renders, we just\n // need a place to keep the data for reference, when changes happen.\n // This field should not be accessed directly. Instead, use getChildData,\n // putChildData, etc...\n\n\n // Similarly, track the dom node and box of our parent element.\n\n\n // If `maintainContainerHeight` prop is set to true, we'll create a\n // placeholder element which occupies space so that the parent height\n // doesn't change when items are removed from the document flow (which\n // happens during leave animations)\n\n\n // Keep track of remaining animations so we know when to fire the\n // all-finished callback, and clean up after ourselves.\n // NOTE: we can't simply use childrenToAnimate.length to track remaining\n // animations, because we need to maintain the list of animating children,\n // to pass to the `onFinishAll` handler.\n\n\n _createClass(FlipMove, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // Run our `appearAnimation` if it was requested, right after the\n // component mounts.\n var shouldTriggerFLIP = this.props.appearAnimation && !this.isAnimationDisabled(this.props);\n\n if (shouldTriggerFLIP) {\n this.prepForAnimation();\n this.runAnimation();\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n // When the component is handed new props, we need to figure out the\n // \"resting\" position of all currently-rendered DOM nodes.\n // We store that data in this.parent and this.children,\n // so it can be used later to work out the animation.\n this.updateBoundingBoxCaches();\n\n // Convert opaque children object to array.\n var nextChildren = _react.Children.toArray(nextProps.children);\n\n // Next, we need to update our state, so that it contains our new set of\n // children. If animation is disabled or unsupported, this is easy;\n // we just copy our props into state.\n // Assuming that we can animate, though, we have to do some work.\n // Essentially, we want to keep just-deleted nodes in the DOM for a bit\n // longer, so that we can animate them away.\n this.setState({\n children: this.isAnimationDisabled(nextProps) ? nextChildren.map(function (element) {\n return _extends({}, element, { element: element });\n }) : this.calculateNextSetOfChildren(nextChildren)\n });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(previousProps) {\n // If the children have been re-arranged, moved, or added/removed,\n // trigger the main FLIP animation.\n //\n // IMPORTANT: We need to make sure that the children have actually changed.\n // At the end of the transition, we clean up nodes that need to be removed.\n var oldChildrenKeys = _react.Children.toArray(this.props.children).map(function (d) {\n return d.key;\n });\n var nextChildrenKeys = _react.Children.toArray(previousProps.children).map(function (d) {\n return d.key;\n });\n\n var shouldTriggerFLIP = !(0, _helpers.arraysEqual)(oldChildrenKeys, nextChildrenKeys) && !this.isAnimationDisabled(this.props);\n\n if (shouldTriggerFLIP) {\n this.prepForAnimation();\n this.runAnimation();\n }\n }\n }, {\n key: 'calculateNextSetOfChildren',\n value: function calculateNextSetOfChildren(nextChildren) {\n var _this2 = this;\n\n // We want to:\n // - Mark all new children as `entering`\n // - Pull in previous children that aren't in nextChildren, and mark them\n // as `leaving`\n // - Preserve the nextChildren list order, with leaving children in their\n // appropriate places.\n //\n\n var updatedChildren = nextChildren.map(function (nextChild) {\n var child = _this2.findChildByKey(nextChild.key || '');\n\n // If the current child did exist, but it was in the midst of leaving,\n // we want to treat it as though it's entering\n var isEntering = !child || child.leaving;\n\n return _extends({}, nextChild, { element: nextChild, entering: isEntering });\n });\n\n // This is tricky. We want to keep the nextChildren's ordering, but with\n // any just-removed items maintaining their original position.\n // eg.\n // this.state.children = [ 1, 2, 3, 4 ]\n // nextChildren = [ 3, 1 ]\n //\n // In this example, we've removed the '2' & '4'\n // We want to end up with: [ 2, 3, 1, 4 ]\n //\n // To accomplish that, we'll iterate through this.state.children. whenever\n // we find a match, we'll append our `leaving` flag to it, and insert it\n // into the nextChildren in its ORIGINAL position. Note that, as we keep\n // inserting old items into the new list, the \"original\" position will\n // keep incrementing.\n var numOfChildrenLeaving = 0;\n this.state.children.forEach(function (child, index) {\n var isLeaving = !nextChildren.find(function (_ref2) {\n var key = _ref2.key;\n return key === getKey(child);\n });\n\n // If the child isn't leaving (or, if there is no leave animation),\n // we don't need to add it into the state children.\n if (!isLeaving || !_this2.props.leaveAnimation) return;\n\n var nextChild = _extends({}, child, { leaving: true });\n var nextChildIndex = index + numOfChildrenLeaving;\n\n updatedChildren.splice(nextChildIndex, 0, nextChild);\n numOfChildrenLeaving += 1;\n });\n\n return updatedChildren;\n }\n }, {\n key: 'prepForAnimation',\n value: function prepForAnimation() {\n var _this3 = this;\n\n // Our animation prep consists of:\n // - remove children that are leaving from the DOM flow, so that the new\n // layout can be accurately calculated,\n // - update the placeholder container height, if needed, to ensure that\n // the parent's height doesn't collapse.\n\n var _props = this.props,\n leaveAnimation = _props.leaveAnimation,\n maintainContainerHeight = _props.maintainContainerHeight,\n getPosition = _props.getPosition;\n\n // we need to make all leaving nodes \"invisible\" to the layout calculations\n // that will take place in the next step (this.runAnimation).\n\n if (leaveAnimation) {\n var leavingChildren = this.state.children.filter(function (child) {\n return child.leaving;\n });\n\n leavingChildren.forEach(function (leavingChild) {\n var childData = _this3.getChildData(getKey(leavingChild));\n\n // We need to take the items out of the \"flow\" of the document, so that\n // its siblings can move to take its place.\n if (childData.boundingBox) {\n (0, _domManipulation.removeNodeFromDOMFlow)(childData, _this3.props.verticalAlignment);\n }\n });\n\n if (maintainContainerHeight && this.heightPlaceholderData.domNode) {\n (0, _domManipulation.updateHeightPlaceholder)({\n domNode: this.heightPlaceholderData.domNode,\n parentData: this.parentData,\n getPosition: getPosition\n });\n }\n }\n\n // For all children not in the middle of entering or leaving,\n // we need to reset the transition, so that the NEW shuffle starts from\n // the right place.\n this.state.children.forEach(function (child) {\n var _getChildData = _this3.getChildData(getKey(child)),\n domNode = _getChildData.domNode;\n\n // Ignore children that don't render DOM nodes (eg. by returning null)\n\n\n if (!domNode) {\n return;\n }\n\n if (!child.entering && !child.leaving) {\n (0, _domManipulation.applyStylesToDOMNode)({\n domNode: domNode,\n styles: {\n transition: ''\n }\n });\n }\n });\n }\n }, {\n key: 'animateChild',\n value: function animateChild(child, index) {\n var _this4 = this;\n\n var _getChildData2 = this.getChildData(getKey(child)),\n domNode = _getChildData2.domNode;\n\n if (!domNode) {\n return;\n }\n\n // Apply the relevant style for this DOM node\n // This is the offset from its actual DOM position.\n // eg. if an item has been re-rendered 20px lower, we want to apply a\n // style of 'transform: translate(-20px)', so that it appears to be where\n // it started.\n // In FLIP terminology, this is the 'Invert' stage.\n (0, _domManipulation.applyStylesToDOMNode)({\n domNode: domNode,\n styles: this.computeInitialStyles(child)\n });\n\n // Start by invoking the onStart callback for this child.\n if (this.props.onStart) this.props.onStart(child, domNode);\n\n // Next, animate the item from it's artificially-offset position to its\n // new, natural position.\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n // NOTE, RE: the double-requestAnimationFrame:\n // Sadly, this is the most browser-compatible way to do this I've found.\n // Essentially we need to set the initial styles outside of any request\n // callbacks to avoid batching them. Then, a frame needs to pass with\n // the styles above rendered. Then, on the second frame, we can apply\n // our final styles to perform the animation.\n\n // Our first order of business is to \"undo\" the styles applied in the\n // previous frames, while also adding a `transition` property.\n // This way, the item will smoothly transition from its old position\n // to its new position.\n\n // eslint-disable-next-line flowtype/require-variable-type\n var styles = {\n transition: (0, _domManipulation.createTransitionString)(index, _this4.props),\n transform: '',\n opacity: ''\n };\n\n if (child.appearing && _this4.props.appearAnimation) {\n styles = _extends({}, styles, _this4.props.appearAnimation.to);\n } else if (child.entering && _this4.props.enterAnimation) {\n styles = _extends({}, styles, _this4.props.enterAnimation.to);\n } else if (child.leaving && _this4.props.leaveAnimation) {\n styles = _extends({}, styles, _this4.props.leaveAnimation.to);\n }\n\n // In FLIP terminology, this is the 'Play' stage.\n (0, _domManipulation.applyStylesToDOMNode)({ domNode: domNode, styles: styles });\n });\n });\n\n this.bindTransitionEndHandler(child);\n }\n }, {\n key: 'bindTransitionEndHandler',\n value: function bindTransitionEndHandler(child) {\n var _this5 = this;\n\n var _getChildData3 = this.getChildData(getKey(child)),\n domNode = _getChildData3.domNode;\n\n if (!domNode) {\n return;\n }\n\n // The onFinish callback needs to be bound to the transitionEnd event.\n // We also need to unbind it when the transition completes, so this ugly\n // inline function is required (we need it here so it closes over\n // dependent variables `child` and `domNode`)\n var transitionEndHandler = function transitionEndHandler(ev) {\n // It's possible that this handler is fired not on our primary transition,\n // but on a nested transition (eg. a hover effect). Ignore these cases.\n if (ev.target !== domNode) return;\n\n // Remove the 'transition' inline style we added. This is cleanup.\n domNode.style.transition = '';\n\n // Trigger any applicable onFinish/onFinishAll hooks\n _this5.triggerFinishHooks(child, domNode);\n\n domNode.removeEventListener(transitionEnd, transitionEndHandler);\n\n if (child.leaving) {\n _this5.removeChildData(getKey(child));\n }\n };\n\n domNode.addEventListener(transitionEnd, transitionEndHandler);\n }\n }, {\n key: 'triggerFinishHooks',\n value: function triggerFinishHooks(child, domNode) {\n var _this6 = this;\n\n if (this.props.onFinish) this.props.onFinish(child, domNode);\n\n // Reduce the number of children we need to animate by 1,\n // so that we can tell when all children have finished.\n this.remainingAnimations -= 1;\n\n if (this.remainingAnimations === 0) {\n // Remove any items from the DOM that have left, and reset `entering`.\n var nextChildren = this.state.children.filter(function (_ref3) {\n var leaving = _ref3.leaving;\n return !leaving;\n }).map(function (item) {\n return _extends({}, item, {\n appearing: false,\n entering: false\n });\n });\n\n this.setState({ children: nextChildren }, function () {\n if (typeof _this6.props.onFinishAll === 'function') {\n _this6.callChildrenHook(_this6.props.onFinishAll);\n }\n\n // Reset our variables for the next iteration\n _this6.childrenToAnimate = [];\n });\n\n // If the placeholder was holding the container open while elements were\n // leaving, we we can now set its height to zero.\n if (this.heightPlaceholderData.domNode) {\n this.heightPlaceholderData.domNode.style.height = '0';\n }\n }\n }\n }, {\n key: 'callChildrenHook',\n value: function callChildrenHook(hook) {\n var _this7 = this;\n\n var elements = [];\n var domNodes = [];\n\n this.childrenToAnimate.forEach(function (childKey) {\n // If this was an exit animation, the child may no longer exist.\n // If so, skip it.\n var child = _this7.findChildByKey(childKey);\n\n if (!child) {\n return;\n }\n\n elements.push(child);\n\n if (_this7.hasChildData(childKey)) {\n domNodes.push(_this7.getChildData(childKey).domNode);\n }\n });\n\n hook(elements, domNodes);\n }\n }, {\n key: 'updateBoundingBoxCaches',\n value: function updateBoundingBoxCaches() {\n var _this8 = this;\n\n // This is the ONLY place that parentData and childrenData's\n // bounding boxes are updated. They will be calculated at other times\n // to be compared to this value, but it's important that the cache is\n // updated once per update.\n var parentDomNode = this.parentData.domNode;\n\n if (!parentDomNode) {\n return;\n }\n\n this.parentData.boundingBox = this.props.getPosition(parentDomNode);\n\n this.state.children.forEach(function (child) {\n var childKey = getKey(child);\n\n // It is possible that a child does not have a `key` property;\n // Ignore these children, they don't need to be moved.\n if (!childKey) {\n return;\n }\n\n // In very rare circumstances, for reasons unknown, the ref is never\n // populated for certain children. In this case, avoid doing this update.\n // see: https://github.com/joshwcomeau/react-flip-move/pull/91\n if (!_this8.hasChildData(childKey)) {\n return;\n }\n\n var childData = _this8.getChildData(childKey);\n\n // If the child element returns null, we need to avoid trying to\n // account for it\n if (!childData.domNode || !child) {\n return;\n }\n\n _this8.setChildData(childKey, {\n boundingBox: (0, _domManipulation.getRelativeBoundingBox)({\n childDomNode: childData.domNode,\n parentDomNode: parentDomNode,\n getPosition: _this8.props.getPosition\n })\n });\n });\n }\n }, {\n key: 'computeInitialStyles',\n value: function computeInitialStyles(child) {\n if (child.appearing) {\n return this.props.appearAnimation ? this.props.appearAnimation.from : {};\n } else if (child.entering) {\n if (!this.props.enterAnimation) {\n return {};\n }\n // If this child was in the middle of leaving, it still has its\n // absolute positioning styles applied. We need to undo those.\n return _extends({\n position: '',\n top: '',\n left: '',\n right: '',\n bottom: ''\n }, this.props.enterAnimation.from);\n } else if (child.leaving) {\n return this.props.leaveAnimation ? this.props.leaveAnimation.from : {};\n }\n\n var childData = this.getChildData(getKey(child));\n var childDomNode = childData.domNode;\n var childBoundingBox = childData.boundingBox;\n var parentBoundingBox = this.parentData.boundingBox;\n\n if (!childDomNode) {\n return {};\n }\n\n var _getPositionDelta3 = (0, _domManipulation.getPositionDelta)({\n childDomNode: childDomNode,\n childBoundingBox: childBoundingBox,\n parentBoundingBox: parentBoundingBox,\n getPosition: this.props.getPosition\n }),\n _getPositionDelta4 = _slicedToArray(_getPositionDelta3, 2),\n dX = _getPositionDelta4[0],\n dY = _getPositionDelta4[1];\n\n return {\n transform: 'translate(' + dX + 'px, ' + dY + 'px)'\n };\n }\n\n // eslint-disable-next-line class-methods-use-this\n\n }, {\n key: 'isAnimationDisabled',\n value: function isAnimationDisabled(props) {\n // If the component is explicitly passed a `disableAllAnimations` flag,\n // we can skip this whole process. Similarly, if all of the numbers have\n // been set to 0, there is no point in trying to animate; doing so would\n // only cause a flicker (and the intent is probably to disable animations)\n // We can also skip this rigamarole if there's no browser support for it.\n return noBrowserSupport || props.disableAllAnimations || props.duration === 0 && props.delay === 0 && props.staggerDurationBy === 0 && props.staggerDelayBy === 0;\n }\n }, {\n key: 'findChildByKey',\n value: function findChildByKey(key) {\n return this.state.children.find(function (child) {\n return getKey(child) === key;\n });\n }\n }, {\n key: 'hasChildData',\n value: function hasChildData(key) {\n // Object has some built-in properties on its prototype, such as toString. hasOwnProperty makes\n // sure that key is present on childrenData itself, not on its prototype.\n return Object.prototype.hasOwnProperty.call(this.childrenData, key);\n }\n }, {\n key: 'getChildData',\n value: function getChildData(key) {\n return this.hasChildData(key) ? this.childrenData[key] : {};\n }\n }, {\n key: 'setChildData',\n value: function setChildData(key, data) {\n this.childrenData[key] = _extends({}, this.getChildData(key), data);\n }\n }, {\n key: 'removeChildData',\n value: function removeChildData(key) {\n delete this.childrenData[key];\n }\n }, {\n key: 'createHeightPlaceholder',\n value: function createHeightPlaceholder() {\n var _this9 = this;\n\n var typeName = this.props.typeName;\n\n // If requested, create an invisible element at the end of the list.\n // Its height will be modified to prevent the container from collapsing\n // prematurely.\n\n var isContainerAList = typeName === 'ul' || typeName === 'ol';\n var placeholderType = isContainerAList ? 'li' : 'div';\n\n return _react2.default.createElement(placeholderType, {\n key: 'height-placeholder',\n ref: function ref(domNode) {\n _this9.heightPlaceholderData.domNode = domNode;\n },\n style: { visibility: 'hidden', height: 0 }\n });\n }\n }, {\n key: 'childrenWithRefs',\n value: function childrenWithRefs() {\n var _this10 = this;\n\n // We need to clone the provided children, capturing a reference to the\n // underlying DOM node. Flip Move needs to use the React escape hatches to\n // be able to do its calculations.\n return this.state.children.map(function (child) {\n return _react2.default.cloneElement(child.element, {\n ref: function ref(element) {\n // Stateless Functional Components are not supported by FlipMove,\n // because they don't have instances.\n if (!element) {\n return;\n }\n\n var domNode = (0, _domManipulation.getNativeNode)(element);\n _this10.setChildData(getKey(child), { domNode: domNode });\n }\n });\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this11 = this;\n\n var _props2 = this.props,\n typeName = _props2.typeName,\n delegated = _props2.delegated,\n leaveAnimation = _props2.leaveAnimation,\n maintainContainerHeight = _props2.maintainContainerHeight;\n\n\n var props = _extends({}, delegated, {\n ref: function ref(node) {\n _this11.parentData.domNode = node;\n }\n });\n\n var children = this.childrenWithRefs();\n if (leaveAnimation && maintainContainerHeight) {\n children.push(this.createHeightPlaceholder());\n }\n\n return _react2.default.createElement(typeName, props, children);\n }\n }]);\n\n return FlipMove;\n}(_react.Component);\n\nexports.default = (0, _propConverter2.default)(FlipMove);\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/react-flip-move/lib/FlipMove.js\n// module id = 26\n// module chunks = 0","'use strict';\n\n// @noflow\n/**\n * React Flip Move - Polyfills\n * (c) 2016-present Joshua Comeau\n */\n\n/* eslint-disable */\n\nif (!Array.prototype.find) {\n Array.prototype.find = function (predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value = void 0;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n };\n}\n\nif (!Array.prototype.every) {\n Array.prototype.every = function (callbackfn, thisArg) {\n 'use strict';\n\n var T, k;\n\n if (this == null) {\n throw new TypeError('this is null or not defined');\n }\n\n var O = Object(this);\n var len = O.length >>> 0;\n\n if (typeof callbackfn !== 'function') {\n throw new TypeError();\n }\n\n if (arguments.length > 1) {\n T = thisArg;\n }\n\n k = 0;\n\n while (k < len) {\n\n var kValue;\n\n if (k in O) {\n kValue = O[k];\n\n var testResult = callbackfn.call(T, kValue, k, O);\n\n if (!testResult) {\n return false;\n }\n }\n k++;\n }\n return true;\n };\n}\n\nif (!Array.isArray) {\n Array.isArray = function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/react-flip-move/lib/polyfills.js\n// module id = 27\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _errorMessages = require('./error-messages');\n\nvar _enterLeavePresets = require('./enter-leave-presets');\n\nvar _helpers = require('./helpers');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n/**\n * React Flip Move | propConverter\n * (c) 2016-present Joshua Comeau\n *\n * Abstracted away a bunch of the messy business with props.\n * - props flow types and defaultProps\n * - Type conversion (We accept 'string' and 'number' values for duration,\n * delay, and other fields, but we actually need them to be ints.)\n * - Children conversion (we need the children to be an array. May not always\n * be, if a single child is passed in.)\n * - Resolving animation presets into their base CSS styles\n */\n/* eslint-disable block-scoped-var */\n\nvar nodeEnv = void 0;\ntry {\n nodeEnv = process.env.NODE_ENV;\n} catch (e) {\n nodeEnv = 'development';\n}\n\nfunction propConverter(ComposedComponent) {\n var _class, _temp;\n\n return _temp = _class = function (_Component) {\n _inherits(FlipMovePropConverter, _Component);\n\n function FlipMovePropConverter() {\n _classCallCheck(this, FlipMovePropConverter);\n\n return _possibleConstructorReturn(this, (FlipMovePropConverter.__proto__ || Object.getPrototypeOf(FlipMovePropConverter)).apply(this, arguments));\n }\n\n _createClass(FlipMovePropConverter, [{\n key: 'checkForStatelessFunctionalComponents',\n\n\n // eslint-disable-next-line class-methods-use-this\n value: function checkForStatelessFunctionalComponents(children) {\n // Skip all console warnings in production.\n // Bail early, to avoid unnecessary work.\n if (nodeEnv === 'production') {\n return;\n }\n\n // FlipMove does not support stateless functional components.\n // Check to see if any supplied components won't work.\n // If the child doesn't have a key, it means we aren't animating it.\n // It's allowed to be an SFC, since we ignore it.\n var childArray = _react.Children.toArray(children);\n var noStateless = childArray.every(function (child) {\n return !(0, _helpers.isElementAnSFC)(child) || typeof child.key === 'undefined';\n });\n\n if (!noStateless) {\n (0, _errorMessages.statelessFunctionalComponentSupplied)();\n }\n }\n }, {\n key: 'convertProps',\n value: function convertProps(props) {\n var workingProps = {\n // explicitly bypass the props that don't need conversion\n children: props.children,\n easing: props.easing,\n onStart: props.onStart,\n onFinish: props.onFinish,\n onStartAll: props.onStartAll,\n onFinishAll: props.onFinishAll,\n typeName: props.typeName,\n disableAllAnimations: props.disableAllAnimations,\n getPosition: props.getPosition,\n maintainContainerHeight: props.maintainContainerHeight,\n verticalAlignment: props.verticalAlignment,\n\n // Do string-to-int conversion for all timing-related props\n duration: this.convertTimingProp('duration'),\n delay: this.convertTimingProp('delay'),\n staggerDurationBy: this.convertTimingProp('staggerDurationBy'),\n staggerDelayBy: this.convertTimingProp('staggerDelayBy'),\n\n // Our enter/leave animations can be specified as boolean (default or\n // disabled), string (preset name), or object (actual animation values).\n // Let's standardize this so that they're always objects\n appearAnimation: this.convertAnimationProp(props.appearAnimation, _enterLeavePresets.appearPresets),\n enterAnimation: this.convertAnimationProp(props.enterAnimation, _enterLeavePresets.enterPresets),\n leaveAnimation: this.convertAnimationProp(props.leaveAnimation, _enterLeavePresets.leavePresets),\n\n delegated: {}\n };\n\n this.checkForStatelessFunctionalComponents(workingProps.children);\n\n // Accept `disableAnimations`, but add a deprecation warning\n if (typeof props.disableAnimations !== 'undefined') {\n if (nodeEnv !== 'production') {\n (0, _errorMessages.deprecatedDisableAnimations)();\n }\n\n workingProps.disableAllAnimations = props.disableAnimations;\n }\n\n // Gather any additional props;\n // they will be delegated to the ReactElement created.\n var primaryPropKeys = Object.keys(workingProps);\n var delegatedProps = (0, _helpers.omit)(this.props, primaryPropKeys);\n\n // The FlipMove container element needs to have a non-static position.\n // We use `relative` by default, but it can be overridden by the user.\n // Now that we're delegating props, we need to merge this in.\n delegatedProps.style = _extends({\n position: 'relative'\n }, delegatedProps.style);\n\n workingProps.delegated = delegatedProps;\n\n return workingProps;\n }\n }, {\n key: 'convertTimingProp',\n value: function convertTimingProp(prop) {\n var rawValue = this.props[prop];\n\n var value = typeof rawValue === 'number' ? rawValue : parseInt(rawValue, 10);\n\n if (isNaN(value)) {\n var defaultValue = FlipMovePropConverter.defaultProps[prop];\n\n if (nodeEnv !== 'production') {\n (0, _errorMessages.invalidTypeForTimingProp)({\n prop: prop,\n value: rawValue,\n defaultValue: defaultValue\n });\n }\n\n return defaultValue;\n }\n\n return value;\n }\n\n // eslint-disable-next-line class-methods-use-this\n\n }, {\n key: 'convertAnimationProp',\n value: function convertAnimationProp(animation, presets) {\n switch (typeof animation === 'undefined' ? 'undefined' : _typeof(animation)) {\n case 'boolean':\n {\n // If it's true, we want to use the default preset.\n // If it's false, we want to use the 'none' preset.\n return presets[animation ? _enterLeavePresets.defaultPreset : _enterLeavePresets.disablePreset];\n }\n\n case 'string':\n {\n var presetKeys = Object.keys(presets);\n\n if (presetKeys.indexOf(animation) === -1) {\n if (nodeEnv !== 'production') {\n (0, _errorMessages.invalidEnterLeavePreset)({\n value: animation,\n acceptableValues: presetKeys.join(', '),\n defaultValue: _enterLeavePresets.defaultPreset\n });\n }\n\n return presets[_enterLeavePresets.defaultPreset];\n }\n\n return presets[animation];\n }\n\n default:\n {\n return animation;\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(ComposedComponent, this.convertProps(this.props));\n }\n }]);\n\n return FlipMovePropConverter;\n }(_react.Component), _class.defaultProps = {\n easing: 'ease-in-out',\n duration: 350,\n delay: 0,\n staggerDurationBy: 0,\n staggerDelayBy: 0,\n typeName: 'div',\n enterAnimation: _enterLeavePresets.defaultPreset,\n leaveAnimation: _enterLeavePresets.defaultPreset,\n disableAllAnimations: false,\n getPosition: function getPosition(node) {\n return node.getBoundingClientRect();\n },\n maintainContainerHeight: false,\n verticalAlignment: 'top'\n }, _temp;\n}\n\nexports.default = propConverter;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/react-flip-move/lib/prop-converter.js\n// module id = 28\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nfunction warnOnce(msg) {\n var hasWarned = false;\n return function () {\n if (!hasWarned) {\n console.warn(msg);\n hasWarned = true;\n }\n };\n}\nvar statelessFunctionalComponentSupplied = exports.statelessFunctionalComponentSupplied = warnOnce('\\n>> Error, via react-flip-move <<\\n\\nYou provided a stateless functional component as a child to <FlipMove>. Unfortunately, SFCs aren\\'t supported, because Flip Move needs access to the backing instances via refs, and SFCs don\\'t have a public instance that holds that info.\\n\\nPlease wrap your components in a native element (eg. <div>), or a non-functional component.\\n');\n\nvar invalidTypeForTimingProp = exports.invalidTypeForTimingProp = function invalidTypeForTimingProp(args) {\n return console.error('\\n>> Error, via react-flip-move <<\\n\\nThe prop you provided for \\'' + args.prop + '\\' is invalid. It needs to be a positive integer, or a string that can be resolved to a number. The value you provided is \\'' + args.value + '\\'.\\n\\nAs a result, the default value for this parameter will be used, which is \\'' + args.defaultValue + '\\'.\\n');\n};\n\nvar deprecatedDisableAnimations = exports.deprecatedDisableAnimations = warnOnce('\\n>> Warning, via react-flip-move <<\\n\\nThe \\'disableAnimations\\' prop you provided is deprecated. Please switch to use \\'disableAllAnimations\\'.\\n\\nThis will become a silent error in future versions of react-flip-move.\\n');\n\nvar invalidEnterLeavePreset = exports.invalidEnterLeavePreset = function invalidEnterLeavePreset(args) {\n return console.error('\\n>> Error, via react-flip-move <<\\n\\nThe enter/leave preset you provided is invalid. We don\\'t currently have a \\'' + args.value + ' preset.\\'\\n\\nAcceptable values are ' + args.acceptableValues + '. The default value of \\'' + args.defaultValue + '\\' will be used.\\n');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/react-flip-move/lib/error-messages.js\n// module id = 29\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar enterPresets = exports.enterPresets = {\n elevator: {\n from: { transform: 'scale(0)', opacity: '0' },\n to: { transform: '', opacity: '' }\n },\n fade: {\n from: { opacity: '0' },\n to: { opacity: '' }\n },\n accordionVertical: {\n from: { transform: 'scaleY(0)', transformOrigin: 'center top' },\n to: { transform: '', transformOrigin: 'center top' }\n },\n accordionHorizontal: {\n from: { transform: 'scaleX(0)', transformOrigin: 'left center' },\n to: { transform: '', transformOrigin: 'left center' }\n },\n none: null\n};\n/**\n * React Flip Move | enterLeavePresets\n * (c) 2016-present Joshua Comeau\n *\n * This contains the master list of presets available for enter/leave animations,\n * along with the mapping between preset and styles.\n */\nvar leavePresets = exports.leavePresets = {\n elevator: {\n from: { transform: 'scale(1)', opacity: '1' },\n to: { transform: 'scale(0)', opacity: '0' }\n },\n fade: {\n from: { opacity: '1' },\n to: { opacity: '0' }\n },\n accordionVertical: {\n from: { transform: 'scaleY(1)', transformOrigin: 'center top' },\n to: { transform: 'scaleY(0)', transformOrigin: 'center top' }\n },\n accordionHorizontal: {\n from: { transform: 'scaleX(1)', transformOrigin: 'left center' },\n to: { transform: 'scaleX(0)', transformOrigin: 'left center' }\n },\n none: null\n};\n\n// For now, appearPresets will be identical to enterPresets.\n// Assigning a custom export in case we ever want to add appear-specific ones.\nvar appearPresets = exports.appearPresets = enterPresets;\n\n// Embarrassingly enough, v2.0 launched with typo'ed preset names.\n// To avoid penning a new major version over something so inconsequential,\n// we're supporting both spellings. In a future version, these alternatives\n// may be deprecated.\n// $FlowFixMe\nenterPresets.accordianVertical = enterPresets.accordionVertical;\n// $FlowFixMe\nenterPresets.accordianHorizontal = enterPresets.accordionHorizontal;\n// $FlowFixMe\nleavePresets.accordianVertical = leavePresets.accordionVertical;\n// $FlowFixMe\nleavePresets.accordianHorizontal = leavePresets.accordionHorizontal;\n\nvar defaultPreset = exports.defaultPreset = 'elevator';\nvar disablePreset = exports.disablePreset = 'none';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/react-flip-move/lib/enter-leave-presets.js\n// module id = 30\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createTransitionString = exports.getNativeNode = exports.updateHeightPlaceholder = exports.removeNodeFromDOMFlow = exports.getPositionDelta = exports.getRelativeBoundingBox = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n/**\n * React Flip Move\n * (c) 2016-present Joshua Comeau\n *\n * These methods read from and write to the DOM.\n * They almost always have side effects, and will hopefully become the\n * only spot in the codebase with impure functions.\n */\n\n\nexports.applyStylesToDOMNode = applyStylesToDOMNode;\nexports.whichTransitionEvent = whichTransitionEvent;\n\nvar _reactDom = require('react-dom');\n\nvar _helpers = require('./helpers');\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction applyStylesToDOMNode(_ref) {\n var domNode = _ref.domNode,\n styles = _ref.styles;\n\n // Can't just do an object merge because domNode.styles is no regular object.\n // Need to do it this way for the engine to fire its `set` listeners.\n Object.keys(styles).forEach(function (key) {\n domNode.style.setProperty((0, _helpers.hyphenate)(key), styles[key]);\n });\n}\n\n// Modified from Modernizr\nfunction whichTransitionEvent() {\n var transitions = {\n transition: 'transitionend',\n '-o-transition': 'oTransitionEnd',\n '-moz-transition': 'transitionend',\n '-webkit-transition': 'webkitTransitionEnd'\n };\n\n // If we're running in a browserless environment (eg. SSR), it doesn't apply.\n // Return a placeholder string, for consistent type return.\n if (typeof document === 'undefined') return '';\n\n var el = document.createElement('fakeelement');\n\n var match = Object.keys(transitions).find(function (t) {\n return el.style.getPropertyValue(t) !== undefined;\n });\n\n // If no `transition` is found, we must be running in a browser so ancient,\n // React itself won't run. Return an empty string, for consistent type return\n return match ? transitions[match] : '';\n}\n\nvar getRelativeBoundingBox = exports.getRelativeBoundingBox = function getRelativeBoundingBox(_ref2) {\n var childDomNode = _ref2.childDomNode,\n parentDomNode = _ref2.parentDomNode,\n getPosition = _ref2.getPosition;\n\n var parentBox = getPosition(parentDomNode);\n\n var _getPosition = getPosition(childDomNode),\n top = _getPosition.top,\n left = _getPosition.left,\n right = _getPosition.right,\n bottom = _getPosition.bottom,\n width = _getPosition.width,\n height = _getPosition.height;\n\n return {\n top: top - parentBox.top,\n left: left - parentBox.left,\n right: parentBox.right - right,\n bottom: parentBox.bottom - bottom,\n width: width,\n height: height\n };\n};\n\n/** getPositionDelta\n * This method returns the delta between two bounding boxes, to figure out\n * how many pixels on each axis the element has moved.\n *\n */\nvar getPositionDelta = exports.getPositionDelta = function getPositionDelta(_ref3) {\n var childDomNode = _ref3.childDomNode,\n childBoundingBox = _ref3.childBoundingBox,\n parentBoundingBox = _ref3.parentBoundingBox,\n getPosition = _ref3.getPosition;\n\n // TEMP: A mystery bug is sometimes causing unnecessary boundingBoxes to\n var defaultBox = { top: 0, left: 0, right: 0, bottom: 0, height: 0, width: 0 };\n\n // Our old box is its last calculated position, derived on mount or at the\n // start of the previous animation.\n var oldRelativeBox = childBoundingBox || defaultBox;\n var parentBox = parentBoundingBox || defaultBox;\n\n // Our new box is the new final resting place: Where we expect it to wind up\n // after the animation. First we get the box in absolute terms (AKA relative\n // to the viewport), and then we calculate its relative box (relative to the\n // parent container)\n var newAbsoluteBox = getPosition(childDomNode);\n var newRelativeBox = {\n top: newAbsoluteBox.top - parentBox.top,\n left: newAbsoluteBox.left - parentBox.left\n };\n\n return [oldRelativeBox.left - newRelativeBox.left, oldRelativeBox.top - newRelativeBox.top];\n};\n\n/** removeNodeFromDOMFlow\n * This method does something very sneaky: it removes a DOM node from the\n * document flow, but without actually changing its on-screen position.\n *\n * It works by calculating where the node is, and then applying styles\n * so that it winds up being positioned absolutely, but in exactly the\n * same place.\n *\n * This is a vital part of the FLIP technique.\n */\nvar removeNodeFromDOMFlow = exports.removeNodeFromDOMFlow = function removeNodeFromDOMFlow(childData, verticalAlignment) {\n var domNode = childData.domNode,\n boundingBox = childData.boundingBox;\n\n\n if (!domNode || !boundingBox) {\n return;\n }\n\n // For this to work, we have to offset any given `margin`.\n var computed = window.getComputedStyle(domNode);\n\n // We need to clean up margins, by converting and removing suffix:\n // eg. '21px' -> 21\n var marginAttrs = ['margin-top', 'margin-left', 'margin-right'];\n var margins = marginAttrs.reduce(function (acc, margin) {\n var propertyVal = computed.getPropertyValue(margin);\n\n return _extends({}, acc, _defineProperty({}, margin, Number(propertyVal.replace('px', ''))));\n }, {});\n\n // If we're bottom-aligned, we need to add the height of the child to its\n // top offset. This is because, when the container is bottom-aligned, its\n // height shrinks from the top, not the bottom. We're removing this node\n // from the flow, so the top is going to drop by its height.\n var topOffset = verticalAlignment === 'bottom' ? boundingBox.top - boundingBox.height : boundingBox.top;\n\n var styles = {\n position: 'absolute',\n top: topOffset - margins['margin-top'] + 'px',\n left: boundingBox.left - margins['margin-left'] + 'px',\n right: boundingBox.right - margins['margin-right'] + 'px'\n };\n\n applyStylesToDOMNode({ domNode: domNode, styles: styles });\n};\n\n/** updateHeightPlaceholder\n * An optional property to FlipMove is a `maintainContainerHeight` boolean.\n * This property creates a node that fills space, so that the parent\n * container doesn't collapse when its children are removed from the\n * document flow.\n */\nvar updateHeightPlaceholder = exports.updateHeightPlaceholder = function updateHeightPlaceholder(_ref4) {\n var domNode = _ref4.domNode,\n parentData = _ref4.parentData,\n getPosition = _ref4.getPosition;\n\n var parentDomNode = parentData.domNode;\n var parentBoundingBox = parentData.boundingBox;\n\n if (!parentDomNode || !parentBoundingBox) {\n return;\n }\n\n // We need to find the height of the container *without* the placeholder.\n // Since it's possible that the placeholder might already be present,\n // we first set its height to 0.\n // This allows the container to collapse down to the size of just its\n // content (plus container padding or borders if any).\n applyStylesToDOMNode({ domNode: domNode, styles: { height: '0' } });\n\n // Find the distance by which the container would be collapsed by elements\n // leaving. We compare the freshly-available parent height with the original,\n // cached container height.\n var originalParentHeight = parentBoundingBox.height;\n var collapsedParentHeight = getPosition(parentDomNode).height;\n var reductionInHeight = originalParentHeight - collapsedParentHeight;\n\n // If the container has become shorter, update the padding element's\n // height to take up the difference. Otherwise set its height to zero,\n // so that it has no effect.\n var styles = {\n height: reductionInHeight > 0 ? reductionInHeight + 'px' : '0'\n };\n\n applyStylesToDOMNode({ domNode: domNode, styles: styles });\n};\n\nvar getNativeNode = exports.getNativeNode = function getNativeNode(element) {\n // When running in a windowless environment, abort!\n if (typeof HTMLElement === 'undefined') {\n return null;\n }\n\n // `element` may already be a native node.\n if (element instanceof HTMLElement) {\n return element;\n }\n\n // While ReactDOM's `findDOMNode` is discouraged, it's the only\n // publicly-exposed way to find the underlying DOM node for\n // composite components.\n var foundNode = (0, _reactDom.findDOMNode)(element);\n\n if (!(foundNode instanceof HTMLElement)) {\n // Text nodes are not supported\n return null;\n }\n\n return foundNode;\n};\n\nvar createTransitionString = exports.createTransitionString = function createTransitionString(index, props) {\n var delay = props.delay,\n duration = props.duration;\n var staggerDurationBy = props.staggerDurationBy,\n staggerDelayBy = props.staggerDelayBy,\n easing = props.easing;\n\n\n delay += index * staggerDelayBy;\n duration += index * staggerDurationBy;\n\n var cssProperties = ['transform', 'opacity'];\n\n return cssProperties.map(function (prop) {\n return prop + ' ' + duration + 'ms ' + easing + ' ' + delay + 'ms';\n }).join(', ');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/react-flip-move/lib/dom-manipulation.js\n// module id = 31\n// module chunks = 0","/*!\n\tAutosize 3.0.21\n\tlicense: MIT\n\thttps://www.jacklmoore.com/autosize\n*/\n(function (global, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(['exports', 'module'], factory);\n\t} else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n\t\tfactory(exports, module);\n\t} else {\n\t\tvar mod = {\n\t\t\texports: {}\n\t\t};\n\t\tfactory(mod.exports, mod);\n\t\tglobal.autosize = mod.exports;\n\t}\n})(this, function (exports, module) {\n\t'use strict';\n\n\tvar map = typeof Map === \"function\" ? new Map() : (function () {\n\t\tvar keys = [];\n\t\tvar values = [];\n\n\t\treturn {\n\t\t\thas: function has(key) {\n\t\t\t\treturn keys.indexOf(key) > -1;\n\t\t\t},\n\t\t\tget: function get(key) {\n\t\t\t\treturn values[keys.indexOf(key)];\n\t\t\t},\n\t\t\tset: function set(key, value) {\n\t\t\t\tif (keys.indexOf(key) === -1) {\n\t\t\t\t\tkeys.push(key);\n\t\t\t\t\tvalues.push(value);\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function _delete(key) {\n\t\t\t\tvar index = keys.indexOf(key);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tkeys.splice(index, 1);\n\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t})();\n\n\tvar createEvent = function createEvent(name) {\n\t\treturn new Event(name, { bubbles: true });\n\t};\n\ttry {\n\t\tnew Event('test');\n\t} catch (e) {\n\t\t// IE does not support `new Event()`\n\t\tcreateEvent = function (name) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent(name, true, false);\n\t\t\treturn evt;\n\t\t};\n\t}\n\n\tfunction assign(ta) {\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n\t\tvar heightOffset = null;\n\t\tvar clientWidth = ta.clientWidth;\n\t\tvar cachedHeight = null;\n\n\t\tfunction init() {\n\t\t\tvar style = window.getComputedStyle(ta, null);\n\n\t\t\tif (style.resize === 'vertical') {\n\t\t\t\tta.style.resize = 'none';\n\t\t\t} else if (style.resize === 'both') {\n\t\t\t\tta.style.resize = 'horizontal';\n\t\t\t}\n\n\t\t\tif (style.boxSizing === 'content-box') {\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n\t\t\t} else {\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\t\t\t}\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\n\t\t\tif (isNaN(heightOffset)) {\n\t\t\t\theightOffset = 0;\n\t\t\t}\n\n\t\t\tupdate();\n\t\t}\n\n\t\tfunction changeOverflow(value) {\n\t\t\t{\n\t\t\t\t// Chrome/Safari-specific fix:\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\n\t\t\t\tvar width = ta.style.width;\n\t\t\t\tta.style.width = '0px';\n\t\t\t\t// Force reflow:\n\t\t\t\t/* jshint ignore:start */\n\t\t\t\tta.offsetWidth;\n\t\t\t\t/* jshint ignore:end */\n\t\t\t\tta.style.width = width;\n\t\t\t}\n\n\t\t\tta.style.overflowY = value;\n\t\t}\n\n\t\tfunction getParentOverflows(el) {\n\t\t\tvar arr = [];\n\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\n\t\t\t\tif (el.parentNode.scrollTop) {\n\t\t\t\t\tarr.push({\n\t\t\t\t\t\tnode: el.parentNode,\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tel = el.parentNode;\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tfunction resize() {\n\t\t\tvar originalHeight = ta.style.height;\n\t\t\tvar overflows = getParentOverflows(ta);\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n\t\t\tta.style.height = 'auto';\n\n\t\t\tvar endHeight = ta.scrollHeight + heightOffset;\n\n\t\t\tif (ta.scrollHeight === 0) {\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n\t\t\t\tta.style.height = originalHeight;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tta.style.height = endHeight + 'px';\n\n\t\t\t// used to check if an update is actually necessary on window.resize\n\t\t\tclientWidth = ta.clientWidth;\n\n\t\t\t// prevents scroll-position jumping\n\t\t\toverflows.forEach(function (el) {\n\t\t\t\tel.node.scrollTop = el.scrollTop;\n\t\t\t});\n\n\t\t\tif (docTop) {\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\n\t\t\t}\n\t\t}\n\n\t\tfunction update() {\n\t\t\tresize();\n\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\n\t\t\tvar computed = window.getComputedStyle(ta, null);\n\n\t\t\t// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\n\t\t\tvar actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\n\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that\n\t\t\t// the max-height has been exceeded, in which case the overflow should be allowed.\n\t\t\tif (actualHeight !== styleHeight) {\n\t\t\t\tif (computed.overflowY === 'hidden') {\n\t\t\t\t\tchangeOverflow('scroll');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n\t\t\t\tif (computed.overflowY !== 'hidden') {\n\t\t\t\t\tchangeOverflow('hidden');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cachedHeight !== actualHeight) {\n\t\t\t\tcachedHeight = actualHeight;\n\t\t\t\tvar evt = createEvent('autosize:resized');\n\t\t\t\ttry {\n\t\t\t\t\tta.dispatchEvent(evt);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar pageResize = function pageResize() {\n\t\t\tif (ta.clientWidth !== clientWidth) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t};\n\n\t\tvar destroy = (function (style) {\n\t\t\twindow.removeEventListener('resize', pageResize, false);\n\t\t\tta.removeEventListener('input', update, false);\n\t\t\tta.removeEventListener('keyup', update, false);\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\n\t\t\tta.removeEventListener('autosize:update', update, false);\n\n\t\t\tObject.keys(style).forEach(function (key) {\n\t\t\t\tta.style[key] = style[key];\n\t\t\t});\n\n\t\t\tmap['delete'](ta);\n\t\t}).bind(ta, {\n\t\t\theight: ta.style.height,\n\t\t\tresize: ta.style.resize,\n\t\t\toverflowY: ta.style.overflowY,\n\t\t\toverflowX: ta.style.overflowX,\n\t\t\twordWrap: ta.style.wordWrap\n\t\t});\n\n\t\tta.addEventListener('autosize:destroy', destroy, false);\n\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\n\t\t// so binding to onkeyup to catch most of those events.\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\n\t\t\tta.addEventListener('keyup', update, false);\n\t\t}\n\n\t\twindow.addEventListener('resize', pageResize, false);\n\t\tta.addEventListener('input', update, false);\n\t\tta.addEventListener('autosize:update', update, false);\n\t\tta.style.overflowX = 'hidden';\n\t\tta.style.wordWrap = 'break-word';\n\n\t\tmap.set(ta, {\n\t\t\tdestroy: destroy,\n\t\t\tupdate: update\n\t\t});\n\n\t\tinit();\n\t}\n\n\tfunction destroy(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.destroy();\n\t\t}\n\t}\n\n\tfunction update(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.update();\n\t\t}\n\t}\n\n\tvar autosize = null;\n\n\t// Do nothing in Node.js environment and IE8 (or lower)\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n\t\tautosize = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\treturn el;\n\t\t};\n\t} else {\n\t\tautosize = function (el, options) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\n\t\t\t\t\treturn assign(x, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t}\n\n\tmodule.exports = autosize;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/autosize/dist/autosize.js\n// module id = 32\n// module chunks = 0","import Polyglot from 'node-polyglot/build/polyglot'\nimport ZHCN from './zh-CN.json'\nimport ZHTW from './zh-TW.json'\nimport EN from './en.json'\nimport ES from './es-ES.json'\nimport FR from './fr.json'\n\nconst i18nMap = {\n 'zh': ZHCN,\n 'zh-CN': ZHCN,\n 'zh-TW': ZHTW,\n 'en': EN,\n 'es-ES': ES,\n 'fr': FR,\n}\n\nexport default function (language) {\n return new Polyglot({\n phrases: i18nMap[language] || i18nMap.en,\n locale: language\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./i18n/index.js","// (c) 2012 Airbnb, Inc.\n//\n// polyglot.js may be freely distributed under the terms of the BSD\n// license. For all licensing information, details, and documention:\n// https://airbnb.github.com/polyglot.js\n//\n//\n// Polyglot.js is an I18n helper library written in JavaScript, made to\n// work both in the browser and in Node. It provides a simple solution for\n// interpolation and pluralization, based off of Airbnb's\n// experience adding I18n functionality to its Backbone.js and Node apps.\n//\n// Polylglot is agnostic to your translation backend. It doesn't perform any\n// translation; it simply gives you a way to manage translated phrases from\n// your client- or server-side JavaScript application.\n//\n\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return factory(root);\n });\n } else if (typeof exports === 'object') {\n module.exports = factory(root);\n } else {\n root.Polyglot = factory(root);\n }\n}(this, function(root) {\n 'use strict';\n\n // ### Polyglot class constructor\n function Polyglot(options) {\n options = options || {};\n this.phrases = {};\n this.extend(options.phrases || {});\n this.currentLocale = options.locale || 'en';\n this.allowMissing = !!options.allowMissing;\n this.warn = options.warn || warn;\n }\n\n // ### Version\n Polyglot.VERSION = '0.4.3';\n\n // ### polyglot.locale([locale])\n //\n // Get or set locale. Internally, Polyglot only uses locale for pluralization.\n Polyglot.prototype.locale = function(newLocale) {\n if (newLocale) this.currentLocale = newLocale;\n return this.currentLocale;\n };\n\n // ### polyglot.extend(phrases)\n //\n // Use `extend` to tell Polyglot how to translate a given key.\n //\n // polyglot.extend({\n // \"hello\": \"Hello\",\n // \"hello_name\": \"Hello, %{name}\"\n // });\n //\n // The key can be any string. Feel free to call `extend` multiple times;\n // it will override any phrases with the same key, but leave existing phrases\n // untouched.\n //\n // It is also possible to pass nested phrase objects, which get flattened\n // into an object with the nested keys concatenated using dot notation.\n //\n // polyglot.extend({\n // \"nav\": {\n // \"hello\": \"Hello\",\n // \"hello_name\": \"Hello, %{name}\",\n // \"sidebar\": {\n // \"welcome\": \"Welcome\"\n // }\n // }\n // });\n //\n // console.log(polyglot.phrases);\n // // {\n // // 'nav.hello': 'Hello',\n // // 'nav.hello_name': 'Hello, %{name}',\n // // 'nav.sidebar.welcome': 'Welcome'\n // // }\n //\n // `extend` accepts an optional second argument, `prefix`, which can be used\n // to prefix every key in the phrases object with some string, using dot\n // notation.\n //\n // polyglot.extend({\n // \"hello\": \"Hello\",\n // \"hello_name\": \"Hello, %{name}\"\n // }, \"nav\");\n //\n // console.log(polyglot.phrases);\n // // {\n // // 'nav.hello': 'Hello',\n // // 'nav.hello_name': 'Hello, %{name}'\n // // }\n //\n // This feature is used internally to support nested phrase objects.\n Polyglot.prototype.extend = function(morePhrases, prefix) {\n var phrase;\n\n for (var key in morePhrases) {\n if (morePhrases.hasOwnProperty(key)) {\n phrase = morePhrases[key];\n if (prefix) key = prefix + '.' + key;\n if (typeof phrase === 'object') {\n this.extend(phrase, key);\n } else {\n this.phrases[key] = phrase;\n }\n }\n }\n };\n\n // ### polyglot.clear()\n //\n // Clears all phrases. Useful for special cases, such as freeing\n // up memory if you have lots of phrases but no longer need to\n // perform any translation. Also used internally by `replace`.\n Polyglot.prototype.clear = function() {\n this.phrases = {};\n };\n\n // ### polyglot.replace(phrases)\n //\n // Completely replace the existing phrases with a new set of phrases.\n // Normally, just use `extend` to add more phrases, but under certain\n // circumstances, you may want to make sure no old phrases are lying around.\n Polyglot.prototype.replace = function(newPhrases) {\n this.clear();\n this.extend(newPhrases);\n };\n\n\n // ### polyglot.t(key, options)\n //\n // The most-used method. Provide a key, and `t` will return the\n // phrase.\n //\n // polyglot.t(\"hello\");\n // => \"Hello\"\n //\n // The phrase value is provided first by a call to `polyglot.extend()` or\n // `polyglot.replace()`.\n //\n // Pass in an object as the second argument to perform interpolation.\n //\n // polyglot.t(\"hello_name\", {name: \"Spike\"});\n // => \"Hello, Spike\"\n //\n // If you like, you can provide a default value in case the phrase is missing.\n // Use the special option key \"_\" to specify a default.\n //\n // polyglot.t(\"i_like_to_write_in_language\", {\n // _: \"I like to write in %{language}.\",\n // language: \"JavaScript\"\n // });\n // => \"I like to write in JavaScript.\"\n //\n Polyglot.prototype.t = function(key, options) {\n var phrase, result;\n options = options == null ? {} : options;\n // allow number as a pluralization shortcut\n if (typeof options === 'number') {\n options = {smart_count: options};\n }\n if (typeof this.phrases[key] === 'string') {\n phrase = this.phrases[key];\n } else if (typeof options._ === 'string') {\n phrase = options._;\n } else if (this.allowMissing) {\n phrase = key;\n } else {\n this.warn('Missing translation for key: \"'+key+'\"');\n result = key;\n }\n if (typeof phrase === 'string') {\n options = clone(options);\n result = choosePluralForm(phrase, this.currentLocale, options.smart_count);\n result = interpolate(result, options);\n }\n return result;\n };\n\n\n // ### polyglot.has(key)\n //\n // Check if polyglot has a translation for given key\n Polyglot.prototype.has = function(key) {\n return key in this.phrases;\n };\n\n\n // #### Pluralization methods\n // The string that separates the different phrase possibilities.\n var delimeter = '||||';\n\n // Mapping from pluralization group plural logic.\n var pluralTypes = {\n chinese: function(n) { return 0; },\n german: function(n) { return n !== 1 ? 1 : 0; },\n french: function(n) { return n > 1 ? 1 : 0; },\n russian: function(n) { return n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2; },\n czech: function(n) { return (n === 1) ? 0 : (n >= 2 && n <= 4) ? 1 : 2; },\n polish: function(n) { return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); },\n icelandic: function(n) { return (n % 10 !== 1 || n % 100 === 11) ? 1 : 0; }\n };\n\n // Mapping from pluralization group to individual locales.\n var pluralTypeToLanguages = {\n chinese: ['fa', 'id', 'ja', 'ko', 'lo', 'ms', 'th', 'tr', 'zh'],\n german: ['da', 'de', 'en', 'es', 'fi', 'el', 'he', 'hu', 'it', 'nl', 'no', 'pt', 'sv'],\n french: ['fr', 'tl', 'pt-br'],\n russian: ['hr', 'ru'],\n czech: ['cs'],\n polish: ['pl'],\n icelandic: ['is']\n };\n\n function langToTypeMap(mapping) {\n var type, langs, l, ret = {};\n for (type in mapping) {\n if (mapping.hasOwnProperty(type)) {\n langs = mapping[type];\n for (l in langs) {\n ret[langs[l]] = type;\n }\n }\n }\n return ret;\n }\n\n // Trim a string.\n function trim(str){\n var trimRe = /^\\s+|\\s+$/g;\n return str.replace(trimRe, '');\n }\n\n // Based on a phrase text that contains `n` plural forms separated\n // by `delimeter`, a `locale`, and a `count`, choose the correct\n // plural form, or none if `count` is `null`.\n function choosePluralForm(text, locale, count){\n var ret, texts, chosenText;\n if (count != null && text) {\n texts = text.split(delimeter);\n chosenText = texts[pluralTypeIndex(locale, count)] || texts[0];\n ret = trim(chosenText);\n } else {\n ret = text;\n }\n return ret;\n }\n\n function pluralTypeName(locale) {\n var langToPluralType = langToTypeMap(pluralTypeToLanguages);\n return langToPluralType[locale] || langToPluralType.en;\n }\n\n function pluralTypeIndex(locale, count) {\n return pluralTypes[pluralTypeName(locale)](count);\n }\n\n // ### interpolate\n //\n // Does the dirty work. Creates a `RegExp` object for each\n // interpolation placeholder.\n function interpolate(phrase, options) {\n for (var arg in options) {\n if (arg !== '_' && options.hasOwnProperty(arg)) {\n // We create a new `RegExp` each time instead of using a more-efficient\n // string replace so that the same argument can be replaced multiple times\n // in the same phrase.\n phrase = phrase.replace(new RegExp('%\\\\{'+arg+'\\\\}', 'g'), options[arg]);\n }\n }\n return phrase;\n }\n\n // ### warn\n //\n // Provides a warning in the console if a phrase key is missing.\n function warn(message) {\n root.console && root.console.warn && root.console.warn('WARNING: ' + message);\n }\n\n // ### clone\n //\n // Clone an object.\n function clone(source) {\n var ret = {};\n for (var prop in source) {\n ret[prop] = source[prop];\n }\n return ret;\n }\n\n return Polyglot;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/node-polyglot/build/polyglot.js\n// module id = 34\n// module chunks = 0","module.exports = {\n\t\"init\": \"Gitalk 加载中 ...\",\n\t\"no-found-related\": \"未找到相关的 %{link} 进行评论\",\n\t\"please-contact\": \"请联系 %{user} 初始化创建\",\n\t\"init-issue\": \"初始化 Issue\",\n\t\"leave-a-comment\": \"说点什么\",\n\t\"comment\": \"评论\",\n\t\"support-markdown\": \"支持 Markdown 语法\",\n\t\"login-with-github\": \"使用 Github 登录\",\n\t\"first-comment-person\": \"来做第一个留言的人吧!\",\n\t\"commented\": \"发表于\",\n\t\"load-more\": \"加载更多\",\n\t\"power\": \"由 %{link} 驱动\",\n\t\"counts\": \"%{counts} 条评论\",\n\t\"sort-asc\": \"从旧到新排序\",\n\t\"sort-desc\": \"从新到旧排序\",\n\t\"logout\": \"注销\",\n\t\"anonymous\": \"未登录用户\"\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./i18n/zh-CN.json\n// module id = 35\n// module chunks = 0","module.exports = {\n\t\"init\": \"Gitalk 加載中 ...\",\n\t\"no-found-related\": \"未找到相關的 %{link} 進行評論\",\n\t\"please-contact\": \"請聯系 %{user} 初始化創建\",\n\t\"init-issue\": \"初始化 Issue\",\n\t\"leave-a-comment\": \"說點什麽\",\n\t\"comment\": \"評論\",\n\t\"support-markdown\": \"支持 Markdown 語法\",\n\t\"login-with-github\": \"使用 Github 登錄\",\n\t\"first-comment-person\": \"來做第一個留言的人吧!\",\n\t\"commented\": \"發表於\",\n\t\"load-more\": \"加載更多\",\n\t\"power\": \"由 %{link} 驅動\",\n\t\"counts\": \"%{counts} 條評論\",\n\t\"sort-asc\": \"從舊到新排序\",\n\t\"sort-desc\": \"從新到舊排序\",\n\t\"logout\": \"註銷\",\n\t\"anonymous\": \"未登錄用戶\"\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./i18n/zh-TW.json\n// module id = 36\n// module chunks = 0","module.exports = {\n\t\"init\": \"Gitalking ...\",\n\t\"no-found-related\": \"Related %{link} not found\",\n\t\"please-contact\": \"Please contact %{user} to initialize the comment\",\n\t\"init-issue\": \"Init Issue\",\n\t\"leave-a-comment\": \"Leave a comment\",\n\t\"comment\": \"Comment\",\n\t\"support-markdown\": \"Markdown is supported\",\n\t\"login-with-github\": \"Login with Github\",\n\t\"first-comment-person\": \"Be the first guy leaving a comment!\",\n\t\"commented\": \"commented\",\n\t\"load-more\": \"Load more\",\n\t\"power\": \"%{link} v1.0.0\",\n\t\"counts\": \"%{counts} comment |||| %{counts} comments\",\n\t\"sort-asc\": \"Sort by Oldest\",\n\t\"sort-desc\": \"Sort by Latest\",\n\t\"logout\": \"Logout\",\n\t\"anonymous\": \"Anonymous\"\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./i18n/en.json\n// module id = 37\n// module chunks = 0","module.exports = {\n\t\"init\": \"Gitalking ...\",\n\t\"no-found-related\": \"Link %{link} no encontrado\",\n\t\"please-contact\": \"Por favor contacta con %{user} para inicializar el comentario\",\n\t\"init-issue\": \"Iniciar Issue\",\n\t\"leave-a-comment\": \"Deja un comentario\",\n\t\"comment\": \"Comentario\",\n\t\"support-markdown\": \"Markdown es soportado\",\n\t\"login-with-github\": \"Entrar con Github\",\n\t\"first-comment-person\": \"Sé el primero en dejar un comentario!\",\n\t\"commented\": \"comentó\",\n\t\"load-more\": \"Cargar más\",\n\t\"power\": \"%{link} v1.0.0\",\n\t\"counts\": \"%{counts} comentario |||| %{counts} comentarios\",\n\t\"sort-asc\": \"Ordenar por Antiguos\",\n\t\"sort-desc\": \"Ordenar por Recientes\",\n\t\"logout\": \"Salir\",\n\t\"anonymous\": \"Anónimo\"\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./i18n/es-ES.json\n// module id = 38\n// module chunks = 0","module.exports = {\n\t\"init\": \"Gitalking ...\",\n\t\"no-found-related\": \"Lien %{link} non trouvé\",\n\t\"please-contact\": \"S’il vous plaît contactez %{user} pour initialiser les commentaires\",\n\t\"init-issue\": \"Initialisation des issues\",\n\t\"leave-a-comment\": \"Laisser un commentaire\",\n\t\"comment\": \"Commentaire\",\n\t\"support-markdown\": \"Markdown est supporté\",\n\t\"login-with-github\": \"Se connecter avec Github\",\n\t\"first-comment-person\": \"Être le premier à laisser un commentaire !\",\n\t\"commented\": \"commenter\",\n\t\"load-more\": \"Charger plus\",\n\t\"power\": \"%{link} v1.0.0\",\n\t\"counts\": \"%{counts} commentaire |||| %{counts} commentaires\",\n\t\"sort-asc\": \"Trier par plus ancien\",\n\t\"sort-desc\": \"Trier par plus récent\",\n\t\"logout\": \"Déconnexion\",\n\t\"anonymous\": \"Anonyme\"\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./i18n/fr.json\n// module id = 39\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./style/index.styl\n// module id = 40\n// module chunks = 0","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/index.js\n// module id = 41\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/axios.js\n// module id = 42\n// module chunks = 0","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <[email protected]> <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/is-buffer/index.js\n// module id = 43\n// module chunks = 0","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\n config.method = config.method.toLowerCase();\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/core/Axios.js\n// module id = 44\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/normalizeHeaderName.js\n// module id = 45\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/core/settle.js\n// module id = 46\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/core/enhanceError.js\n// module id = 47\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., https://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/buildURL.js\n// module id = 48\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/parseHeaders.js\n// module id = 49\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - https://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/isURLSameOrigin.js\n// module id = 50\n// module chunks = 0","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/btoa.js\n// module id = 51\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/cookies.js\n// module id = 52\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/core/InterceptorManager.js\n// module id = 53\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/core/dispatchRequest.js\n// module id = 54\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/core/transformData.js\n// module id = 55\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>:https://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/isAbsoluteURL.js\n// module id = 56\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/combineURLs.js\n// module id = 57\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/cancel/CancelToken.js\n// module id = 58\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/axios/lib/helpers/spread.js\n// module id = 59\n// module chunks = 0","import React from 'react'\n\nexport default function Button (props) {\n let className = 'gt-btn '\n props.className && (className+=props.className)\n return (\n <button ref={el => (props.getRef && props.getRef(el))} className={className} onClick={props.onClick} onMouseDown={props.onMouseDown}>\n <span className=\"gt-btn-text\">{props.text}</span>\n {props.isLoading && <span className=\"gt-btn-loading gt-spinner\"></span>}\n </button>\n )\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./component/button.jsx","import React from 'react'\n\nexport default function Action (props) {\n let className = 'gt-action '\n props.className && (className += props.className)\n return (\n <a className={className} onClick={props.onClick}>\n <span className=\"gt-action-text\">{props.text}</span>\n </a>\n )\n}\n\n\n\n// WEBPACK FOOTER //\n// ./component/action.jsx","import React, { Component } from 'react'\nimport Avatar from './avatar'\nimport Svg from './svg'\nimport distanceInWordsToNow from 'date-fns/distance_in_words_to_now'\nimport buildDistanceInWordsLocaleZHCN from 'date-fns/locale/zh_cn/build_distance_in_words_locale/index'\nimport buildDistanceInWordsLocaleZHTW from 'date-fns/locale/zh_tw/build_distance_in_words_locale/index'\nimport buildDistanceInWordsLocaleES from 'date-fns/locale/es/build_distance_in_words_locale/index'\nimport buildDistanceInWordsLocaleFR from 'date-fns/locale/fr/build_distance_in_words_locale/index'\nimport 'github-markdown-css/github-markdown.css'\n\nconst ZHCN = buildDistanceInWordsLocaleZHCN()\nconst ZHTW = buildDistanceInWordsLocaleZHTW()\nconst ES = buildDistanceInWordsLocaleES()\nconst FR = buildDistanceInWordsLocaleFR()\nwindow.GT_i18n_distanceInWordsLocaleMap = {\n 'zh': ZHCN,\n 'zh-CN': ZHCN,\n 'zh-TW': ZHTW,\n 'es-ES': ES,\n 'fr': FR,\n}\n\nexport default class Comment extends Component {\n render () {\n const { comment, user, language, commentedText = '', admin = [], replyCallback } = this.props\n const enableEdit = user && comment.user.login === user.login\n const isAdmin = ~admin.indexOf(comment.user.login)\n return (\n <div className={`gt-comment ${isAdmin ? 'gt-comment-admin' : ''}`}>\n <Avatar className=\"gt-comment-avatar\" src={comment.user && comment.user.avatar_url} />\n <div className=\"gt-comment-content\">\n <div className=\"gt-comment-header\">\n <a className=\"gt-comment-username\" href={comment.user && comment.user.html_url}>{comment.user && comment.user.login}</a>\n <span className=\"gt-comment-text\">\n {commentedText}\n </span>\n <span className=\"gt-comment-date\">\n {distanceInWordsToNow(comment.created_at, {\n addSuffix: true,\n locale: {\n distanceInWords: window.GT_i18n_distanceInWordsLocaleMap[language]\n }\n })}\n </span>\n {enableEdit ?\n <a href={comment.html_url} className=\"gt-comment-edit\" target=\"_blank\">\n <Svg className=\"gt-ico-edit\" name=\"edit\"/>\n </a> :\n <a className=\"gt-comment-reply\" onClick={replyCallback}>\n <Svg className=\"gt-ico-reply\" name=\"reply\"/>\n </a>\n }\n </div>\n <div className=\"gt-comment-body markdown-body\" dangerouslySetInnerHTML={{\n __html: comment.body_html\n }} />\n </div>\n </div>\n )\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./component/comment.jsx","var map = {\n\t\"./arrow_down.svg\": 64,\n\t\"./edit.svg\": 65,\n\t\"./github.svg\": 66,\n\t\"./reply.svg\": 67,\n\t\"./tip.svg\": 68\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 63;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icon !/Users/liuchuwen/node_modules/raw-loader ^\\.\\/.*\\.svg$\n// module id = 63\n// module chunks = 0","module.exports = \"<svg viewBox=\\\"0 0 1024 1024\\\" xmlns=\\\"https://www.w3.org/2000/svg\\\" p-id=\\\"1619\\\"><path d=\\\"M511.872 676.8c-0.003 0-0.006 0-0.008 0-9.137 0-17.379-3.829-23.21-9.97l-251.277-265.614c-5.415-5.72-8.743-13.464-8.744-21.984 0-17.678 14.33-32.008 32.008-32.008 9.157 0 17.416 3.845 23.25 10.009l228.045 241.103 228.224-241.088c5.855-6.165 14.113-10.001 23.266-10.001 8.516 0 16.256 3.32 21.998 8.736 12.784 12.145 13.36 32.434 1.264 45.233l-251.52 265.6c-5.844 6.155-14.086 9.984-23.223 9.984-0.025 0-0.051 0-0.076 0z\\\" p-id=\\\"1620\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/liuchuwen/node_modules/raw-loader!./assets/icon/arrow_down.svg\n// module id = 64\n// module chunks = 0","module.exports = \"<svg viewBox=\\\"0 0 1024 1024\\\" xmlns=\\\"https://www.w3.org/2000/svg\\\">\\n <path d=\\\"M785.333333 85.333333C774.666667 85.333333 763.2 90.133333 754.666667 98.666667L682.666667 170.666667 853.333333 341.333333 925.333333 269.333333C942.4 252.266667 942.4 222.133333 925.333333 209.333333L814.666667 98.666667C806.133333 90.133333 796 85.333333 785.333333 85.333333zM640 217.333333 85.333333 768 85.333333 938.666667 256 938.666667 806.666667 384 640 217.333333z\\\"></path>\\n</svg>\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/liuchuwen/node_modules/raw-loader!./assets/icon/edit.svg\n// module id = 65\n// module chunks = 0","module.exports = \"<svg viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"https://www.w3.org/2000/svg\\\">\\n <path d=\\\"M64 524C64 719.602 189.356 885.926 364.113 947.017 387.65799 953 384 936.115 384 924.767L384 847.107C248.118 863.007 242.674 773.052 233.5 758.001 215 726.501 171.5 718.501 184.5 703.501 215.5 687.501 247 707.501 283.5 761.501 309.956 800.642 361.366 794.075 387.658 787.497 393.403 763.997 405.637 743.042 422.353 726.638 281.774 701.609 223 615.67 223 513.5 223 464.053 239.322 418.406 271.465 381.627 251.142 320.928 273.421 269.19 276.337 261.415 334.458 256.131 394.888 302.993 399.549 306.685 432.663 297.835 470.341 293 512.5 293 554.924 293 592.81 297.896 626.075 306.853 637.426 298.219 693.46 258.054 747.5 262.966 750.382 270.652 772.185 321.292 753.058 381.083 785.516 417.956 802 463.809 802 513.5 802 615.874 742.99 701.953 601.803 726.786 625.381 750.003 640 782.295 640 818.008L640 930.653C640.752 939.626 640 948.664978 655.086 948.665 832.344 888.962 960 721.389 960 524 960 276.576 759.424 76 512 76 264.577 76 64 276.576 64 524Z\\\"></path>\\n</svg>\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/liuchuwen/node_modules/raw-loader!./assets/icon/github.svg\n// module id = 66\n// module chunks = 0","module.exports = \"<svg viewBox=\\\"0 0 1332 1024\\\" version=\\\"1.1\\\" xmlns=\\\"https://www.w3.org/2000/svg\\\">\\n <path d=\\\"M529.066665 273.066666 529.066665 0 51.2 477.866666 529.066665 955.733335 529.066665 675.84C870.4 675.84 1109.333335 785.066665 1280 1024 1211.733335 682.666665 1006.933335 341.333334 529.066665 273.066666\\\"></path>\\n</svg>\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/liuchuwen/node_modules/raw-loader!./assets/icon/reply.svg\n// module id = 67\n// module chunks = 0","module.exports = \"<svg viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"https://www.w3.org/2000/svg\\\">\\n <path d=\\\"M512 366.949535c-16.065554 0-29.982212 13.405016-29.982212 29.879884l0 359.070251c0 16.167882 13.405016 29.879884 29.982212 29.879884 15.963226 0 29.879884-13.405016 29.879884-29.879884L541.879884 396.829419C541.879884 380.763865 528.474868 366.949535 512 366.949535L512 366.949535z\\\"\\n p-id=\\\"3083\\\"></path>\\n <path d=\\\"M482.017788 287.645048c0-7.776956 3.274508-15.553912 8.80024-21.181973 5.525732-5.525732 13.302688-8.80024 21.181973-8.80024 7.776956 0 15.553912 3.274508 21.079644 8.80024 5.525732 5.62806 8.80024 13.405016 8.80024 21.181973 0 7.776956-3.274508 15.656241-8.80024 21.181973-5.525732 5.525732-13.405016 8.697911-21.079644 8.697911-7.879285 0-15.656241-3.274508-21.181973-8.697911C485.292295 303.301289 482.017788 295.524333 482.017788 287.645048L482.017788 287.645048z\\\"\\n p-id=\\\"3084\\\"></path>\\n <path d=\\\"M512 946.844409c-239.8577 0-434.895573-195.037873-434.895573-434.895573 0-239.8577 195.037873-434.895573 434.895573-434.895573 239.755371 0 434.895573 195.037873 434.895573 434.895573C946.895573 751.806535 751.755371 946.844409 512 946.844409zM512 126.17088c-212.740682 0-385.880284 173.037274-385.880284 385.777955 0 212.740682 173.037274 385.777955 385.880284 385.777955 212.740682 0 385.777955-173.037274 385.777955-385.777955C897.777955 299.208154 724.740682 126.17088 512 126.17088z\\\"\\n p-id=\\\"3085\\\"></path>\\n</svg>\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/liuchuwen/node_modules/raw-loader!./assets/icon/tip.svg\n// module id = 68\n// module chunks = 0","var distanceInWords = require('../distance_in_words/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param {Date|String|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if the second date is earlier or later than the first\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = distanceInWordsToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = distanceInWordsToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = distanceInWordsToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWordsToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWordsToNow (dirtyDate, dirtyOptions) {\n return distanceInWords(Date.now(), dirtyDate, dirtyOptions)\n}\n\nmodule.exports = distanceInWordsToNow\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/distance_in_words_to_now/index.js\n// module id = 69\n// module chunks = 0","var compareDesc = require('../compare_desc/index.js')\nvar parse = require('../parse/index.js')\nvar differenceInSeconds = require('../difference_in_seconds/index.js')\nvar differenceInMonths = require('../difference_in_months/index.js')\nvar enLocale = require('../locale/en/index.js')\n\nvar MINUTES_IN_DAY = 1440\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520\nvar MINUTES_IN_MONTH = 43200\nvar MINUTES_IN_TWO_MONTHS = 86400\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date|String|Number} date - the other date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = distanceInWords(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 1)\n * )\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * var result = distanceInWords(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = distanceInWords(\n * new Date(2016, 0, 1),\n * new Date(2015, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWords(\n * new Date(2016, 7, 1),\n * new Date(2015, 0, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWords (dirtyDateToCompare, dirtyDate, dirtyOptions) {\n var options = dirtyOptions || {}\n\n var comparison = compareDesc(dirtyDateToCompare, dirtyDate)\n\n var locale = options.locale\n var localize = enLocale.distanceInWords.localize\n if (locale && locale.distanceInWords && locale.distanceInWords.localize) {\n localize = locale.distanceInWords.localize\n }\n\n var localizeOptions = {\n addSuffix: Boolean(options.addSuffix),\n comparison: comparison\n }\n\n var dateLeft, dateRight\n if (comparison > 0) {\n dateLeft = parse(dirtyDateToCompare)\n dateRight = parse(dirtyDate)\n } else {\n dateLeft = parse(dirtyDate)\n dateRight = parse(dirtyDateToCompare)\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft)\n var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset()\n var minutes = Math.round(seconds / 60) - offset\n var months\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return localize('lessThanXSeconds', 5, localizeOptions)\n } else if (seconds < 10) {\n return localize('lessThanXSeconds', 10, localizeOptions)\n } else if (seconds < 20) {\n return localize('lessThanXSeconds', 20, localizeOptions)\n } else if (seconds < 40) {\n return localize('halfAMinute', null, localizeOptions)\n } else if (seconds < 60) {\n return localize('lessThanXMinutes', 1, localizeOptions)\n } else {\n return localize('xMinutes', 1, localizeOptions)\n }\n } else {\n if (minutes === 0) {\n return localize('lessThanXMinutes', 1, localizeOptions)\n } else {\n return localize('xMinutes', minutes, localizeOptions)\n }\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return localize('xMinutes', minutes, localizeOptions)\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return localize('aboutXHours', 1, localizeOptions)\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60)\n return localize('aboutXHours', hours, localizeOptions)\n\n // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return localize('xDays', 1, localizeOptions)\n\n // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY)\n return localize('xDays', days, localizeOptions)\n\n // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH)\n return localize('aboutXMonths', months, localizeOptions)\n }\n\n months = differenceInMonths(dateRight, dateLeft)\n\n // 2 months up to 12 months\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH)\n return localize('xMonths', nearestMonth, localizeOptions)\n\n // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12\n var years = Math.floor(months / 12)\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return localize('aboutXYears', years, localizeOptions)\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return localize('overXYears', years, localizeOptions)\n\n // N years 9 months up to N year 12 months\n } else {\n return localize('almostXYears', years + 1, localizeOptions)\n }\n }\n}\n\nmodule.exports = distanceInWords\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/distance_in_words/index.js\n// module id = 70\n// module chunks = 0","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return -1 if the first date is after the second,\n * 1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * var result = compareDesc(\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * )\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * // Sun Jul 02 1995 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Wed Feb 11 1987 00:00:00\n * // ]\n */\nfunction compareDesc (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var timeLeft = dateLeft.getTime()\n var dateRight = parse(dirtyDateRight)\n var timeRight = dateRight.getTime()\n\n if (timeLeft > timeRight) {\n return -1\n } else if (timeLeft < timeRight) {\n return 1\n } else {\n return 0\n }\n}\n\nmodule.exports = compareDesc\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/compare_desc/index.js\n// module id = 71\n// module chunks = 0","/**\n * @category Common Helpers\n * @summary Is the given argument an instance of Date?\n *\n * @description\n * Is the given argument an instance of Date?\n *\n * @param {*} argument - the argument to check\n * @returns {Boolean} the given argument is an instance of Date\n *\n * @example\n * // Is 'mayonnaise' a Date?\n * var result = isDate('mayonnaise')\n * //=> false\n */\nfunction isDate (argument) {\n return argument instanceof Date\n}\n\nmodule.exports = isDate\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/is_date/index.js\n// module id = 72\n// module chunks = 0","var differenceInMilliseconds = require('../difference_in_milliseconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nfunction differenceInSeconds (dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInSeconds\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/difference_in_seconds/index.js\n// module id = 73\n// module chunks = 0","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nfunction differenceInMilliseconds (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n return dateLeft.getTime() - dateRight.getTime()\n}\n\nmodule.exports = differenceInMilliseconds\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/difference_in_milliseconds/index.js\n// module id = 74\n// module chunks = 0","var parse = require('../parse/index.js')\nvar differenceInCalendarMonths = require('../difference_in_calendar_months/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 7\n */\nfunction differenceInMonths (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var sign = compareAsc(dateLeft, dateRight)\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight))\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference)\n\n // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign\n return sign * (difference - isLastMonthNotFull)\n}\n\nmodule.exports = differenceInMonths\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/difference_in_months/index.js\n// module id = 75\n// module chunks = 0","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nfunction differenceInCalendarMonths (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear()\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth()\n\n return yearDiff * 12 + monthDiff\n}\n\nmodule.exports = differenceInCalendarMonths\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/difference_in_calendar_months/index.js\n// module id = 76\n// module chunks = 0","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * )\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nfunction compareAsc (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var timeLeft = dateLeft.getTime()\n var dateRight = parse(dirtyDateRight)\n var timeRight = dateRight.getTime()\n\n if (timeLeft < timeRight) {\n return -1\n } else if (timeLeft > timeRight) {\n return 1\n } else {\n return 0\n }\n}\n\nmodule.exports = compareAsc\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/compare_asc/index.js\n// module id = 77\n// module chunks = 0","var buildDistanceInWordsLocale = require('./build_distance_in_words_locale/index.js')\nvar buildFormatLocale = require('./build_format_locale/index.js')\n\n/**\n * @category Locales\n * @summary English locale.\n */\nmodule.exports = {\n distanceInWords: buildDistanceInWordsLocale(),\n format: buildFormatLocale()\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/locale/en/index.js\n// module id = 78\n// module chunks = 0","function buildDistanceInWordsLocale () {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n\n halfAMinute: 'half a minute',\n\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n }\n\n function localize (token, count, options) {\n options = options || {}\n\n var result\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token]\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result\n } else {\n return result + ' ago'\n }\n }\n\n return result\n }\n\n return {\n localize: localize\n }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js\n// module id = 79\n// module chunks = 0","var buildFormattingTokensRegExp = require('../../_lib/build_formatting_tokens_reg_exp/index.js')\n\nfunction buildFormatLocale () {\n // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n var meridiemUppercase = ['AM', 'PM']\n var meridiemLowercase = ['am', 'pm']\n var meridiemFull = ['a.m.', 'p.m.']\n\n var formatters = {\n // Month: Jan, Feb, ..., Dec\n 'MMM': function (date) {\n return months3char[date.getMonth()]\n },\n\n // Month: January, February, ..., December\n 'MMMM': function (date) {\n return monthsFull[date.getMonth()]\n },\n\n // Day of week: Su, Mo, ..., Sa\n 'dd': function (date) {\n return weekdays2char[date.getDay()]\n },\n\n // Day of week: Sun, Mon, ..., Sat\n 'ddd': function (date) {\n return weekdays3char[date.getDay()]\n },\n\n // Day of week: Sunday, Monday, ..., Saturday\n 'dddd': function (date) {\n return weekdaysFull[date.getDay()]\n },\n\n // AM, PM\n 'A': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0]\n },\n\n // am, pm\n 'a': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0]\n },\n\n // a.m., p.m.\n 'aa': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0]\n }\n }\n\n // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.\n var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W']\n ordinalFormatters.forEach(function (formatterToken) {\n formatters[formatterToken + 'o'] = function (date, formatters) {\n return ordinal(formatters[formatterToken](date))\n }\n })\n\n return {\n formatters: formatters,\n formattingTokensRegExp: buildFormattingTokensRegExp(formatters)\n }\n}\n\nfunction ordinal (number) {\n var rem100 = number % 100\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st'\n case 2:\n return number + 'nd'\n case 3:\n return number + 'rd'\n }\n }\n return number + 'th'\n}\n\nmodule.exports = buildFormatLocale\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/locale/en/build_format_locale/index.js\n// module id = 80\n// module chunks = 0","var commonFormatterKeys = [\n 'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',\n 'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',\n 'H', 'HH', 'h', 'hh', 'm', 'mm',\n 's', 'ss', 'S', 'SS', 'SSS',\n 'Z', 'ZZ', 'X', 'x'\n]\n\nfunction buildFormattingTokensRegExp (formatters) {\n var formatterKeys = []\n for (var key in formatters) {\n if (formatters.hasOwnProperty(key)) {\n formatterKeys.push(key)\n }\n }\n\n var formattingTokens = commonFormatterKeys\n .concat(formatterKeys)\n .sort()\n .reverse()\n var formattingTokensRegExp = new RegExp(\n '(\\\\[[^\\\\[]*\\\\])|(\\\\\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'\n )\n\n return formattingTokensRegExp\n}\n\nmodule.exports = buildFormattingTokensRegExp\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js\n// module id = 81\n// module chunks = 0","function buildDistanceInWordsLocale () {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: '不到 1 秒',\n other: '不到 {{count}} 秒'\n },\n\n xSeconds: {\n one: '1 秒',\n other: '{{count}} 秒'\n },\n\n halfAMinute: '半分钟',\n\n lessThanXMinutes: {\n one: '不到 1 分钟',\n other: '不到 {{count}} 分钟'\n },\n\n xMinutes: {\n one: '1 分钟',\n other: '{{count}} 分钟'\n },\n\n xHours: {\n one: '1 小时',\n other: '{{count}} 小时'\n },\n\n aboutXHours: {\n one: '大约 1 小时',\n other: '大约 {{count}} 小时'\n },\n\n xDays: {\n one: '1 天',\n other: '{{count}} 天'\n },\n\n aboutXMonths: {\n one: '大约 1 个月',\n other: '大约 {{count}} 个月'\n },\n\n xMonths: {\n one: '1 个月',\n other: '{{count}} 个月'\n },\n\n aboutXYears: {\n one: '大约 1 年',\n other: '大约 {{count}} 年'\n },\n\n xYears: {\n one: '1 年',\n other: '{{count}} 年'\n },\n\n overXYears: {\n one: '超过 1 年',\n other: '超过 {{count}} 年'\n },\n\n almostXYears: {\n one: '将近 1 年',\n other: '将近 {{count}} 年'\n }\n }\n\n function localize (token, count, options) {\n options = options || {}\n\n var result\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token]\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + '内'\n } else {\n return result + '前'\n }\n }\n\n return result\n }\n\n return {\n localize: localize\n }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/locale/zh_cn/build_distance_in_words_locale/index.js\n// module id = 82\n// module chunks = 0","function buildDistanceInWordsLocale () {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: '少於 1 秒',\n other: '少於 {{count}} 秒'\n },\n\n xSeconds: {\n one: '1 秒',\n other: '{{count}} 秒'\n },\n\n halfAMinute: '半分鐘',\n\n lessThanXMinutes: {\n one: '少於 1 分鐘',\n other: '少於 {{count}} 分鐘'\n },\n\n xMinutes: {\n one: '1 分鐘',\n other: '{{count}} 分鐘'\n },\n\n xHours: {\n one: '1 小時',\n other: '{{count}} 小時'\n },\n\n aboutXHours: {\n one: '大約 1 小時',\n other: '大約 {{count}} 小時'\n },\n\n xDays: {\n one: '1 天',\n other: '{{count}} 天'\n },\n\n aboutXMonths: {\n one: '大約 1 個月',\n other: '大約 {{count}} 個月'\n },\n\n xMonths: {\n one: '1 個月',\n other: '{{count}} 個月'\n },\n\n aboutXYears: {\n one: '大約 1 年',\n other: '大約 {{count}} 年'\n },\n\n xYears: {\n one: '1 年',\n other: '{{count}} 年'\n },\n\n overXYears: {\n one: '超過 1 年',\n other: '超過 {{count}} 年'\n },\n\n almostXYears: {\n one: '將近 1 年',\n other: '將近 {{count}} 年'\n }\n }\n\n function localize (token, count, options) {\n options = options || {}\n\n var result\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token]\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return result + '內'\n } else {\n return result + '前'\n }\n }\n\n return result\n }\n\n return {\n localize: localize\n }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/locale/zh_tw/build_distance_in_words_locale/index.js\n// module id = 83\n// module chunks = 0","function buildDistanceInWordsLocale () {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: 'menos de un segundo',\n other: 'menos de {{count}} segundos'\n },\n\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundos'\n },\n\n halfAMinute: 'medio minuto',\n\n lessThanXMinutes: {\n one: 'menos de un minuto',\n other: 'menos de {{count}} minutos'\n },\n\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutos'\n },\n\n aboutXHours: {\n one: 'alrededor de 1 hora',\n other: 'alrededor de {{count}} horas'\n },\n\n xHours: {\n one: '1 hora',\n other: '{{count}} horas'\n },\n\n xDays: {\n one: '1 día',\n other: '{{count}} días'\n },\n\n aboutXMonths: {\n one: 'alrededor de 1 mes',\n other: 'alrededor de {{count}} meses'\n },\n\n xMonths: {\n one: '1 mes',\n other: '{{count}} meses'\n },\n\n aboutXYears: {\n one: 'alrededor de 1 año',\n other: 'alrededor de {{count}} años'\n },\n\n xYears: {\n one: '1 año',\n other: '{{count}} años'\n },\n\n overXYears: {\n one: 'más de 1 año',\n other: 'más de {{count}} años'\n },\n\n almostXYears: {\n one: 'casi 1 año',\n other: 'casi {{count}} años'\n }\n }\n\n function localize (token, count, options) {\n options = options || {}\n\n var result\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token]\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'en ' + result\n } else {\n return 'hace ' + result\n }\n }\n\n return result\n }\n\n return {\n localize: localize\n }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/locale/es/build_distance_in_words_locale/index.js\n// module id = 84\n// module chunks = 0","function buildDistanceInWordsLocale () {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: 'moins d’une seconde',\n other: 'moins de {{count}} secondes'\n },\n\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} secondes'\n },\n\n halfAMinute: '30 secondes',\n\n lessThanXMinutes: {\n one: 'moins d’une minute',\n other: 'moins de {{count}} minutes'\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n\n aboutXHours: {\n one: 'environ 1 heure',\n other: 'environ {{count}} heures'\n },\n\n xHours: {\n one: '1 heure',\n other: '{{count}} heures'\n },\n\n xDays: {\n one: '1 jour',\n other: '{{count}} jours'\n },\n\n aboutXMonths: {\n one: 'environ 1 mois',\n other: 'environ {{count}} mois'\n },\n\n xMonths: {\n one: '1 mois',\n other: '{{count}} mois'\n },\n\n aboutXYears: {\n one: 'environ 1 an',\n other: 'environ {{count}} ans'\n },\n\n xYears: {\n one: '1 an',\n other: '{{count}} ans'\n },\n\n overXYears: {\n one: 'plus d’un an',\n other: 'plus de {{count}} ans'\n },\n\n almostXYears: {\n one: 'presqu’un an',\n other: 'presque {{count}} ans'\n }\n }\n\n function localize (token, count, options) {\n options = options || {}\n\n var result\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token]\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'dans ' + result\n } else {\n return 'il y a ' + result\n }\n }\n\n return result\n }\n\n return {\n localize: localize\n }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/date-fns/locale/fr/build_distance_in_words_locale/index.js\n// module id = 85\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/github-markdown-css/github-markdown.css\n// module id = 86\n// module chunks = 0","export const GT_ACCESS_TOKEN = 'GT_ACCESS_TOKEN'\nexport const GT_VERSION = VERSION // eslint-disable-line\nexport const GT_COMMENT = 'GT_COMMENT'\n\n\n\n// WEBPACK FOOTER //\n// ./const.js","import {\n axiosGithub\n} from '../util'\n\nconst getQL = (vars, pagerDirection) => {\n const cursorDirection = pagerDirection === 'last' ? 'before' : 'after'\n const ql = `\n query getIssueAndComments(\n $owner: String!,\n $repo: String!,\n $id: Int!,\n $cursor: String,\n $pageSize: Int!\n ) {\n repository(owner: $owner, name: $repo) {\n issue(number: $id) {\n title\n url\n bodyHTML\n createdAt\n comments(${pagerDirection}: $pageSize, ${cursorDirection}: $cursor) {\n totalCount\n pageInfo {\n ${pagerDirection === 'last' ? 'hasPreviousPage' : 'hasNextPage'}\n ${cursorDirection === 'before' ? 'startCursor' : 'endCursor'}\n }\n nodes {\n databaseId\n author {\n avatarUrl\n login\n url\n }\n bodyHTML\n body\n createdAt\n }\n }\n }\n }\n }\n `\n\n if (vars.cursor === null) delete vars.cursor\n\n return {\n operationName: 'getIssueAndComments',\n query: ql,\n variables: vars\n }\n}\n\nfunction getComments (issue) {\n const { owner, repo, perPage, pagerDirection } = this.options\n const { cursor, comments } = this.state\n return axiosGithub.post(\n '/graphql',\n getQL(\n {\n owner,\n repo,\n id: issue.number,\n pageSize: perPage,\n cursor\n },\n pagerDirection\n ), {\n headers: {\n Authorization: `bearer ${this.accessToken}`\n }\n }\n ).then(res => {\n const data = res.data.data.repository.issue.comments\n const items = data.nodes.map(node => ({\n id: node.databaseId,\n user: {\n avatar_url: node.author.avatarUrl,\n login: node.author.login,\n html_url: node.author.url\n },\n created_at: node.createdAt,\n body_html: node.bodyHTML,\n body: node.body,\n html_url: `https://github.com/${owner}/${repo}/issues/${issue.number}#issuecomment-${node.databaseId}`\n }))\n\n let cs\n\n if (pagerDirection === 'last') {\n cs = [...items, ...comments]\n } else {\n cs = [...comments, ...items]\n }\n\n const isLoadOver = data.pageInfo.hasPreviousPage === false || data.pageInfo.hasNextPage === false\n this.setState({\n comments: cs,\n isLoadOver,\n cursor: data.pageInfo.startCursor || data.pageInfo.endCursor\n })\n return cs\n })\n}\n\nexport default getComments\n\n\n\n// WEBPACK FOOTER //\n// ./graphql/getComments.js"],"sourceRoot":""}