From 72ec5959a424deb8d682e4b10a3ca342cb93c00c Mon Sep 17 00:00:00 2001 From: Tyler Thompson Date: Thu, 11 Aug 2016 13:16:27 -0700 Subject: [PATCH] 7.0.1 --- dist/redux-little-router.js | 2 +- dist/redux-little-router.js.map | 2 +- dist/redux-little-router.min.js | 2 +- dist/redux-little-router.min.js.map | 2 +- package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/redux-little-router.js b/dist/redux-little-router.js index b6a55519..680cc3fd 100644 --- a/dist/redux-little-router.js +++ b/dist/redux-little-router.js @@ -197,7 +197,7 @@ return /******/ (function(modules) { // webpackBootstrap var pathname = _ref3.pathname; var query = _ref3.query; var _ref3$basename = _ref3.basename; - var basename = _ref3$basename === undefined ? '/' : _ref3$basename; + var basename = _ref3$basename === undefined ? '' : _ref3$basename; var _ref3$forServerRender = _ref3.forServerRender; var forServerRender = _ref3$forServerRender === undefined ? false : _ref3$forServerRender; var _ref3$createMatcher = _ref3.createMatcher; diff --git a/dist/redux-little-router.js.map b/dist/redux-little-router.js.map index 9b1d439a..16998369 100644 --- a/dist/redux-little-router.js.map +++ b/dist/redux-little-router.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 4b63a2177b62e015d4e7","webpack:///./index.js","webpack:///./store-enhancer.js","webpack:///../~/history/lib/createBrowserHistory.js","webpack:///../~/process/browser.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/lib/ExecutionEnvironment.js","webpack:///../~/history/lib/BrowserProtocol.js","webpack:///../~/history/lib/LocationUtils.js","webpack:///../~/history/lib/PathUtils.js","webpack:///../~/warning/browser.js","webpack:///../~/history/lib/Actions.js","webpack:///../~/history/lib/DOMUtils.js","webpack:///../~/history/lib/DOMStateStorage.js","webpack:///../~/history/lib/RefreshProtocol.js","webpack:///../~/history/lib/createHistory.js","webpack:///../~/history/lib/AsyncUtils.js","webpack:///../~/history/lib/runTransitionHook.js","webpack:///../~/history/lib/createMemoryHistory.js","webpack:///../~/history/lib/useBasename.js","webpack:///../~/history/lib/useQueries.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./action-types.js","webpack:///./create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./reducer.js","webpack:///./initial-router-state.js","webpack:///./provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./link.js","webpack:///./fragment.js"],"names":[],"mappings":"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CAAP;AApBJ;AAsBD,QAvBD;;AAyBA,2BAAW,KAAX,IAAkB,kBAAlB,EAA4B,gBAA5B,EAAqC,sBAArC;AACD,MAxEM;AAAA,IAAP;AAyED,E;;;;;;ACrID;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,wCAAuC,6BAA6B,YAAY,EAAE,OAAO,iBAAiB,mBAAmB,uBAAuB,4EAA4E,EAAE,EAAE,sBAAsB,eAAe,EAAE;;AAE3Q,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,qBAAqB;AACxC;AACA;AACA,yEAAwE;;AAExE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAoB;AACpB;AACA;AACA,IAAG;AACH;;AAEA,wC;;;;;;;AC9FA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;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,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC7FtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;;AAEA;AACA;AACA,EAAC;AACD,2H;;;;;;ACLA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,gBAAe,WAAW;AAC1B;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,G;;;;;;ACrFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;;ACnFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,G;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;;;;;;;AC3DA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+B;;;;;;ACvBA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACjCA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,wEAAuE;;;AAGvE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2GAA0G;AAC1G;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,G;;;;;;;AChFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAe;AACf;;AAEA;AACA;AACA,gBAAe;AACf,G;;;;;;ACtCA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,mCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM;AACA,yEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,MAAK;AACL;;AAEA;AACA,oMAAmM;;AAEnM;;AAEA;AACA,oDAAmD;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;;AAEA,6EAA4E;AAC5E;AACA,MAAK;AACL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;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,8B;;;;;;AC1HA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA,GAAE;AACF;AACA,GAAE;AACF;;;;;;;ACjGA;AACA;AACA;AACA;AACA,GAAE;AACF;;;;;;;ACLA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AClFO,KAAM,8CAAmB,yBAAzB;AACA,KAAM,sBAAO,aAAb;AACA,KAAM,4BAAU,gBAAhB;AACA,KAAM,kBAAK,WAAX;AACA,KAAM,4BAAU,gBAAhB;AACA,KAAM,kCAAa,mBAAnB,C;;;;;;;;;;;;ACLP;;;;;;mBAEe,kBAAU;AACvB,OAAM,kBAAkB,OAAO,IAAP,CAAY,MAAZ,EAAoB,GAApB,CAAwB;AAAA,YAAU;AACxD,mBADwD;AAExD,gBAAS,yBAAe,KAAf,CAF+C;AAGxD,eAAQ,OAAO,KAAP;AAHgD,MAAV;AAAA,IAAxB,CAAxB;;AAMA,UAAO,uBAAe;;AAEpB,SAAM,QAAQ,YAAY,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAd,C;;;AAGA,UAAK,IAAM,GAAX,IAAkB,eAAlB,EAAmC;AACjC,WAAI,gBAAgB,cAAhB,CAA+B,GAA/B,CAAJ,EAAyC;AACvC,aAAM,cAAc,gBAAgB,GAAhB,CAApB;AACA,aAAM,QAAQ,YAAY,OAAZ,CAAoB,KAApB,CAA0B,KAA1B,CAAd;;AAEA,aAAI,KAAJ,EAAW;;AAET,kBAAO;AACL,oBAAO,YAAY,KADd;AAEL,qBAAQ,KAFH;AAGL,qBAAQ,YAAY;AAHf,YAAP;AAKD;AACF;AACF;;AAED,YAAO,IAAP;AACD,IAtBD;AAuBD,E;;;;;;AChCD;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;AACD;AACA;AACA,gDAA+C;AAC/C;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;AACA;AACA;AACA;AACA,QAAO;AACP;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;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;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,QAAO;AACP;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;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;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;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;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,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;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;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;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;ACnbD;;;;;;;;;;;;;;;;ACAA;;mBAEe,YAAwB;AAAA,OAAvB,KAAuB,yDAAf,EAAe;AAAA,OAAX,MAAW;;AACrC,OAAI,OAAO,IAAP,kCAAJ,EAAsC;;AAEpC,SAAI,SAAS,MAAM,QAAN,KAAmB,OAAO,OAAP,CAAe,QAA/C,EAAyD;AACvD,cAAO,KAAP;AACD;;AAED,yBACK,OAAO,OADZ;AAEE,iBAAU,MAAM;AAFlB;AAID;AACD,UAAO,KAAP;AACD,E;;;;;;;;;;;;;;ACfD;;;;;;mBAEe;AAAA,4BACb,QADa;AAAA,OACb,QADa,iCACF,GADE;AAAA,yBAEb,KAFa;AAAA,OAEb,KAFa,8BAEL,EAFK;AAAA,OAGb,MAHa,QAGb,MAHa;AAAA,OAIb,OAJa,QAIb,OAJa;AAAA,uBAMV,QAAQ,cAAR,CAAuB;AACxB,uBADwB;AAExB;AAFwB,IAAvB,CANU,EAUV,6BAAc,MAAd,EAAsB,QAAtB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","file":"redux-little-router.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_30__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 4b63a2177b62e015d4e7\n **/","import createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport Fragment from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","import createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\nimport initialRouterState from './initial-router-state';\n\nexport const locationDidChange = ({ location, matchRoute }) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = location => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\nexport default ({\n routes,\n pathname,\n query,\n basename = '/',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}) => {\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return createStore => (reducer, initialState, enhancer) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = {...state};\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...reducer(vanillaState, action),\n router: routerReducer(state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query, routes, history\n }\n )} : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {...store, dispatch, history, matchRoute};\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\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 = setTimeout(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 clearTimeout(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 setTimeout(drainQueue, 0);\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;\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 ** ../~/process/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * Copyright 2013-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'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 invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { 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/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\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 ? \"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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 8\n ** module chunks = 0\n **/","/**\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'use strict';\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 = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\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}\n\nmodule.exports = warning;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 13\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 14\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 16\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 17\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\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 return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\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 newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn key;\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().sort().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 21\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 22\n ** module chunks = 0\n **/","export const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","import UrlPattern from 'url-pattern';\n\nexport default routes => {\n const routeDictionary = Object.keys(routes).map(route => ({\n route,\n pattern: new UrlPattern(route),\n result: routes[route]\n }));\n\n return incomingUrl => {\n // Discard query strings\n const route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\n // Find the route that matches the URL\n for (const key in routeDictionary) {\n if (routeDictionary.hasOwnProperty(key)) {\n const storedRoute = routeDictionary[key];\n const match = storedRoute.pattern.match(route);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n }\n\n return null;\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 25\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 26\n ** module chunks = 0\n **/","import { LOCATION_CHANGED } from './action-types';\n\nexport default (state = {}, action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n return {\n ...action.payload,\n previous: state.current\n };\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","import createMatcher from './create-matcher';\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./initial-router-state.js\n **/","import React, { Component, PropTypes } from 'react';\n\nexport default ({ store }) => ComposedComponent => {\n class RouterProvider extends Component {\n constructor(props) {\n super(props);\n this.router = { store };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n render() {\n const { children, ...rest } = this.props; // eslint-disable-line no-unused-vars\n return ;\n }\n }\n\n RouterProvider.childContextTypes = {\n router: PropTypes.object\n };\n\n RouterProvider.propTypes = {\n children: PropTypes.node\n };\n\n return RouterProvider;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_30__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 30\n ** module chunks = 0\n **/","import React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst onClick = ({e, target, location, replaceState, router}) => {\n if (hasModifier(e) || isNotLeftClick(e) || target) {\n return;\n }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (props, context) => {\n const {\n href,\n target,\n persistQuery,\n replaceState,\n children\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n onClick({\n e,\n target,\n location,\n replaceState,\n router\n })}\n >\n {children}\n \n );\n};\n\nLink.propTypes = {\n href: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n replaceState: PropTypes.bool,\n persistQuery: PropTypes.bool,\n target: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.node\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","import React, { PropTypes } from 'react';\n\nconst Fragment = (props, context) => {\n const { forRoute, forRoutes, withConditions, children } = props;\n const { store } = context.router;\n const { matchRoute } = store;\n const { router: location } = store.getState();\n\n if (\n forRoute &&\n matchRoute(location.pathname).route !== forRoute\n ) {\n return null;\n }\n\n if (forRoutes) {\n const anyMatch = forRoutes.some(route =>\n matchRoute(location.pathname).route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nFragment.propTypes = {\n forRoute: PropTypes.string,\n forRoutes: PropTypes.arrayOf(PropTypes.string),\n withConditions: PropTypes.func,\n children: PropTypes.node\n};\n\nFragment.contextTypes = {\n router: PropTypes.object\n};\n\nexport default Fragment;\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap d30bd35ea583dd605764","webpack:///./index.js","webpack:///./store-enhancer.js","webpack:///../~/history/lib/createBrowserHistory.js","webpack:///../~/process/browser.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/lib/ExecutionEnvironment.js","webpack:///../~/history/lib/BrowserProtocol.js","webpack:///../~/history/lib/LocationUtils.js","webpack:///../~/history/lib/PathUtils.js","webpack:///../~/warning/browser.js","webpack:///../~/history/lib/Actions.js","webpack:///../~/history/lib/DOMUtils.js","webpack:///../~/history/lib/DOMStateStorage.js","webpack:///../~/history/lib/RefreshProtocol.js","webpack:///../~/history/lib/createHistory.js","webpack:///../~/history/lib/AsyncUtils.js","webpack:///../~/history/lib/runTransitionHook.js","webpack:///../~/history/lib/createMemoryHistory.js","webpack:///../~/history/lib/useBasename.js","webpack:///../~/history/lib/useQueries.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./action-types.js","webpack:///./create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./reducer.js","webpack:///./initial-router-state.js","webpack:///./provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./link.js","webpack:///./fragment.js"],"names":[],"mappings":"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CAAP;AApBJ;AAsBD,QAvBD;;AAyBA,2BAAW,KAAX,IAAkB,kBAAlB,EAA4B,gBAA5B,EAAqC,sBAArC;AACD,MAxEM;AAAA,IAAP;AAyED,E;;;;;;ACrID;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,wCAAuC,6BAA6B,YAAY,EAAE,OAAO,iBAAiB,mBAAmB,uBAAuB,4EAA4E,EAAE,EAAE,sBAAsB,eAAe,EAAE;;AAE3Q,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,qBAAqB;AACxC;AACA;AACA,yEAAwE;;AAExE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAoB;AACpB;AACA;AACA,IAAG;AACH;;AAEA,wC;;;;;;;AC9FA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;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,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC7FtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;;AAEA;AACA;AACA,EAAC;AACD,2H;;;;;;ACLA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,gBAAe,WAAW;AAC1B;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,G;;;;;;ACrFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;;ACnFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,G;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;;;;;;;AC3DA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+B;;;;;;ACvBA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACjCA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,wEAAuE;;;AAGvE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2GAA0G;AAC1G;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,G;;;;;;;AChFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAe;AACf;;AAEA;AACA;AACA,gBAAe;AACf,G;;;;;;ACtCA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,mCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM;AACA,yEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,MAAK;AACL;;AAEA;AACA,oMAAmM;;AAEnM;;AAEA;AACA,oDAAmD;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;;AAEA,6EAA4E;AAC5E;AACA,MAAK;AACL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;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,8B;;;;;;AC1HA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA,GAAE;AACF;AACA,GAAE;AACF;;;;;;;ACjGA;AACA;AACA;AACA;AACA,GAAE;AACF;;;;;;;ACLA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AClFO,KAAM,8CAAmB,yBAAzB;AACA,KAAM,sBAAO,aAAb;AACA,KAAM,4BAAU,gBAAhB;AACA,KAAM,kBAAK,WAAX;AACA,KAAM,4BAAU,gBAAhB;AACA,KAAM,kCAAa,mBAAnB,C;;;;;;;;;;;;ACLP;;;;;;mBAEe,kBAAU;AACvB,OAAM,kBAAkB,OAAO,IAAP,CAAY,MAAZ,EAAoB,GAApB,CAAwB;AAAA,YAAU;AACxD,mBADwD;AAExD,gBAAS,yBAAe,KAAf,CAF+C;AAGxD,eAAQ,OAAO,KAAP;AAHgD,MAAV;AAAA,IAAxB,CAAxB;;AAMA,UAAO,uBAAe;;AAEpB,SAAM,QAAQ,YAAY,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAd,C;;;AAGA,UAAK,IAAM,GAAX,IAAkB,eAAlB,EAAmC;AACjC,WAAI,gBAAgB,cAAhB,CAA+B,GAA/B,CAAJ,EAAyC;AACvC,aAAM,cAAc,gBAAgB,GAAhB,CAApB;AACA,aAAM,QAAQ,YAAY,OAAZ,CAAoB,KAApB,CAA0B,KAA1B,CAAd;;AAEA,aAAI,KAAJ,EAAW;;AAET,kBAAO;AACL,oBAAO,YAAY,KADd;AAEL,qBAAQ,KAFH;AAGL,qBAAQ,YAAY;AAHf,YAAP;AAKD;AACF;AACF;;AAED,YAAO,IAAP;AACD,IAtBD;AAuBD,E;;;;;;AChCD;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;AACD;AACA;AACA,gDAA+C;AAC/C;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;AACA;AACA;AACA;AACA,QAAO;AACP;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;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;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,QAAO;AACP;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;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;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;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;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,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;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;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;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;ACnbD;;;;;;;;;;;;;;;;ACAA;;mBAEe,YAAwB;AAAA,OAAvB,KAAuB,yDAAf,EAAe;AAAA,OAAX,MAAW;;AACrC,OAAI,OAAO,IAAP,kCAAJ,EAAsC;;AAEpC,SAAI,SAAS,MAAM,QAAN,KAAmB,OAAO,OAAP,CAAe,QAA/C,EAAyD;AACvD,cAAO,KAAP;AACD;;AAED,yBACK,OAAO,OADZ;AAEE,iBAAU,MAAM;AAFlB;AAID;AACD,UAAO,KAAP;AACD,E;;;;;;;;;;;;;;ACfD;;;;;;mBAEe;AAAA,4BACb,QADa;AAAA,OACb,QADa,iCACF,GADE;AAAA,yBAEb,KAFa;AAAA,OAEb,KAFa,8BAEL,EAFK;AAAA,OAGb,MAHa,QAGb,MAHa;AAAA,OAIb,OAJa,QAIb,OAJa;AAAA,uBAMV,QAAQ,cAAR,CAAuB;AACxB,uBADwB;AAExB;AAFwB,IAAvB,CANU,EAUV,6BAAc,MAAd,EAAsB,QAAtB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","file":"redux-little-router.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_30__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap d30bd35ea583dd605764\n **/","import createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport Fragment from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","import createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\nimport initialRouterState from './initial-router-state';\n\nexport const locationDidChange = ({ location, matchRoute }) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = location => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\nexport default ({\n routes,\n pathname,\n query,\n basename = '',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}) => {\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return createStore => (reducer, initialState, enhancer) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = {...state};\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...reducer(vanillaState, action),\n router: routerReducer(state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query, routes, history\n }\n )} : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {...store, dispatch, history, matchRoute};\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\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 = setTimeout(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 clearTimeout(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 setTimeout(drainQueue, 0);\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;\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 ** ../~/process/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * Copyright 2013-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'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 invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { 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/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\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 ? \"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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 8\n ** module chunks = 0\n **/","/**\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'use strict';\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 = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\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}\n\nmodule.exports = warning;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 13\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 14\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 16\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 17\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\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 return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\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 newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn key;\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().sort().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 21\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 22\n ** module chunks = 0\n **/","export const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","import UrlPattern from 'url-pattern';\n\nexport default routes => {\n const routeDictionary = Object.keys(routes).map(route => ({\n route,\n pattern: new UrlPattern(route),\n result: routes[route]\n }));\n\n return incomingUrl => {\n // Discard query strings\n const route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\n // Find the route that matches the URL\n for (const key in routeDictionary) {\n if (routeDictionary.hasOwnProperty(key)) {\n const storedRoute = routeDictionary[key];\n const match = storedRoute.pattern.match(route);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n }\n\n return null;\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 25\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 26\n ** module chunks = 0\n **/","import { LOCATION_CHANGED } from './action-types';\n\nexport default (state = {}, action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n return {\n ...action.payload,\n previous: state.current\n };\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","import createMatcher from './create-matcher';\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./initial-router-state.js\n **/","import React, { Component, PropTypes } from 'react';\n\nexport default ({ store }) => ComposedComponent => {\n class RouterProvider extends Component {\n constructor(props) {\n super(props);\n this.router = { store };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n render() {\n const { children, ...rest } = this.props; // eslint-disable-line no-unused-vars\n return ;\n }\n }\n\n RouterProvider.childContextTypes = {\n router: PropTypes.object\n };\n\n RouterProvider.propTypes = {\n children: PropTypes.node\n };\n\n return RouterProvider;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_30__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 30\n ** module chunks = 0\n **/","import React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst onClick = ({e, target, location, replaceState, router}) => {\n if (hasModifier(e) || isNotLeftClick(e) || target) {\n return;\n }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (props, context) => {\n const {\n href,\n target,\n persistQuery,\n replaceState,\n children\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n onClick({\n e,\n target,\n location,\n replaceState,\n router\n })}\n >\n {children}\n \n );\n};\n\nLink.propTypes = {\n href: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n replaceState: PropTypes.bool,\n persistQuery: PropTypes.bool,\n target: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.node\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","import React, { PropTypes } from 'react';\n\nconst Fragment = (props, context) => {\n const { forRoute, forRoutes, withConditions, children } = props;\n const { store } = context.router;\n const { matchRoute } = store;\n const { router: location } = store.getState();\n\n if (\n forRoute &&\n matchRoute(location.pathname).route !== forRoute\n ) {\n return null;\n }\n\n if (forRoutes) {\n const anyMatch = forRoutes.some(route =>\n matchRoute(location.pathname).route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nFragment.propTypes = {\n forRoute: PropTypes.string,\n forRoutes: PropTypes.arrayOf(PropTypes.string),\n withConditions: PropTypes.func,\n children: PropTypes.node\n};\n\nFragment.contextTypes = {\n router: PropTypes.object\n};\n\nexport default Fragment;\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/redux-little-router.min.js b/dist/redux-little-router.min.js index 0cf328ee..4d036fa0 100644 --- a/dist/redux-little-router.min.js +++ b/dist/redux-little-router.min.js @@ -1,3 +1,3 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReduxLittleRouter=t(require("react")):e.ReduxLittleRouter=t(e.React)}(this,function(e){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t.createMatcher=t.locationDidChange=t.routerReducer=t.GO_BACK=t.GO_FORWARD=t.GO=t.REPLACE=t.PUSH=t.LOCATION_CHANGED=t.Fragment=t.PersistentQueryLink=t.Link=t.provideRouter=t.initializeCurrentLocation=t.createStoreWithRouter=void 0;var o=r(1),a=n(o),i=r(28),u=n(i),c=r(30),s=r(31),l=n(s),f=r(26),p=n(f),d=r(23),h=n(d),y=r(22);t.createStoreWithRouter=a["default"],t.initializeCurrentLocation=o.initializeCurrentLocation,t.provideRouter=u["default"],t.Link=c.Link,t.PersistentQueryLink=c.PersistentQueryLink,t.Fragment=l["default"],t.LOCATION_CHANGED=y.LOCATION_CHANGED,t.PUSH=y.PUSH,t.REPLACE=y.REPLACE,t.GO=y.GO,t.GO_FORWARD=y.GO_FORWARD,t.GO_BACK=y.GO_BACK,t.routerReducer=p["default"],t.locationDidChange=o.locationDidChange,t.createMatcher=h["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t.initializeCurrentLocation=t.locationDidChange=void 0;var o=Object.assign||function(e){for(var t=1;t=0&&0===window.sessionStorage.length)return;throw r}},t.readState=function(e){var t=void 0;try{t=window.sessionStorage.getItem(c(e))}catch(r){if(r.name===i)return}if(t)try{return JSON.parse(t)}catch(r){}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.replaceLocation=t.pushLocation=t.getCurrentLocation=t.go=t.getUserConfirmation=void 0;var n=r(5);Object.defineProperty(t,"getUserConfirmation",{enumerable:!0,get:function(){return n.getUserConfirmation}}),Object.defineProperty(t,"go",{enumerable:!0,get:function(){return n.go}});var o=r(6),a=r(7);t.getCurrentLocation=function(){return(0,o.createLocation)(window.location)},t.pushLocation=function(e){return window.location.href=(0,a.createPath)(e),!1},t.replaceLocation=function(e){return window.location.replace((0,a.createPath)(e)),!1}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);tr;r++)t[r]=arguments[r];return a=!0,i?void(c=t):void n.apply(void 0,t)},l=function f(){if(!a&&(u=!0,!i)){for(i=!0;!a&&e>o&&u;)u=!1,t(o++,f,s);return i=!1,a?void n.apply(void 0,r(c)):void(o>=e&&u&&(a=!0,n()))}};l()}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(8),a=(n(o),function(e,t,r){var n=e(t,r);e.length<2&&r(n)});t["default"]=a},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t=0&&t=0&&v1?t-1:0),o=1;t>o;o++)n[o-1]=arguments[o];return a(r.createLocation.apply(r,[c(e)].concat(n)))};return o({},r,{getCurrentLocation:s,listenBefore:l,listen:f,push:p,replace:d,createPath:h,createHref:y,createLocation:v})}};t["default"]=c},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t1?t-1:0),o=1;t>o;o++)n[o-1]=arguments[o];var a=r.createLocation.apply(r,[p(e,e.query)].concat(n));return e.query&&(a.query=(0,c.createQuery)(e.query)),i(a)};return o({},r,{getCurrentLocation:d,listenBefore:h,listen:y,push:v,replace:g,createPath:m,createHref:O,createLocation:b})}};t["default"]=p},function(e,t,r){"use strict";function n(e,t){return t.encode?t.strict?o(e):encodeURIComponent(e):e}var o=r(20),a=r(21);t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e){var t=Object.create(null);return"string"!=typeof e?t:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach(function(e){var r=e.replace(/\+/g," ").split("="),n=r.shift(),o=r.length>0?r.join("="):void 0;n=decodeURIComponent(n),o=void 0===o?null:decodeURIComponent(o),void 0===t[n]?t[n]=o:Array.isArray(t[n])?t[n].push(o):t[n]=[t[n],o]}),t):t},t.stringify=function(e,t){var r={encode:!0,strict:!0};return t=a(r,t),e?Object.keys(e).sort().map(function(r){var o=e[r];if(void 0===o)return"";if(null===o)return r;if(Array.isArray(o)){var a=[];return o.slice().sort().forEach(function(e){void 0!==e&&(null===e?a.push(n(r,t)):a.push(n(r,t)+"="+n(e,t)))}),a.join("&")}return n(r,t)+"="+n(o,t)}).filter(function(e){return e.length>0}).join("&"):""}},function(e,t){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}},function(e,t){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function n(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;10>r;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==n.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(a){return!1}}var o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=n()?Object.assign:function(e,t){for(var n,i,u=r(e),c=1;ca))return i=Array.isArray(u)?u[o]:u,n&&(r[t]=o+1),i;if(n)throw new Error("too few values provided for key `"+t+"`")}else if(n)throw new Error("no values provided for key `"+t+"`")},r=function(e,t,n){var o,a;if(Array.isArray(e)){for(o=-1,a=e.length;++o=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var c=function(){function e(e,t){for(var r=0;r=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.PersistentQueryLink=t.Link=void 0;var c=Object.assign||function(e){for(var t=1;t=0&&0===window.sessionStorage.length)return;throw r}},t.readState=function(e){var t=void 0;try{t=window.sessionStorage.getItem(c(e))}catch(r){if(r.name===i)return}if(t)try{return JSON.parse(t)}catch(r){}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.replaceLocation=t.pushLocation=t.getCurrentLocation=t.go=t.getUserConfirmation=void 0;var n=r(5);Object.defineProperty(t,"getUserConfirmation",{enumerable:!0,get:function(){return n.getUserConfirmation}}),Object.defineProperty(t,"go",{enumerable:!0,get:function(){return n.go}});var o=r(6),a=r(7);t.getCurrentLocation=function(){return(0,o.createLocation)(window.location)},t.pushLocation=function(e){return window.location.href=(0,a.createPath)(e),!1},t.replaceLocation=function(e){return window.location.replace((0,a.createPath)(e)),!1}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);tr;r++)t[r]=arguments[r];return a=!0,i?void(c=t):void n.apply(void 0,t)},l=function f(){if(!a&&(u=!0,!i)){for(i=!0;!a&&e>o&&u;)u=!1,t(o++,f,s);return i=!1,a?void n.apply(void 0,r(c)):void(o>=e&&u&&(a=!0,n()))}};l()}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(8),a=(n(o),function(e,t,r){var n=e(t,r);e.length<2&&r(n)});t["default"]=a},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t=0&&t=0&&v1?t-1:0),o=1;t>o;o++)n[o-1]=arguments[o];return a(r.createLocation.apply(r,[c(e)].concat(n)))};return o({},r,{getCurrentLocation:s,listenBefore:l,listen:f,push:p,replace:d,createPath:h,createHref:y,createLocation:v})}};t["default"]=c},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t1?t-1:0),o=1;t>o;o++)n[o-1]=arguments[o];var a=r.createLocation.apply(r,[p(e,e.query)].concat(n));return e.query&&(a.query=(0,c.createQuery)(e.query)),i(a)};return o({},r,{getCurrentLocation:d,listenBefore:h,listen:y,push:v,replace:g,createPath:m,createHref:O,createLocation:b})}};t["default"]=p},function(e,t,r){"use strict";function n(e,t){return t.encode?t.strict?o(e):encodeURIComponent(e):e}var o=r(20),a=r(21);t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e){var t=Object.create(null);return"string"!=typeof e?t:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach(function(e){var r=e.replace(/\+/g," ").split("="),n=r.shift(),o=r.length>0?r.join("="):void 0;n=decodeURIComponent(n),o=void 0===o?null:decodeURIComponent(o),void 0===t[n]?t[n]=o:Array.isArray(t[n])?t[n].push(o):t[n]=[t[n],o]}),t):t},t.stringify=function(e,t){var r={encode:!0,strict:!0};return t=a(r,t),e?Object.keys(e).sort().map(function(r){var o=e[r];if(void 0===o)return"";if(null===o)return r;if(Array.isArray(o)){var a=[];return o.slice().sort().forEach(function(e){void 0!==e&&(null===e?a.push(n(r,t)):a.push(n(r,t)+"="+n(e,t)))}),a.join("&")}return n(r,t)+"="+n(o,t)}).filter(function(e){return e.length>0}).join("&"):""}},function(e,t){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}},function(e,t){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function n(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;10>r;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==n.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(a){return!1}}var o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=n()?Object.assign:function(e,t){for(var n,i,u=r(e),c=1;ca))return i=Array.isArray(u)?u[o]:u,n&&(r[t]=o+1),i;if(n)throw new Error("too few values provided for key `"+t+"`")}else if(n)throw new Error("no values provided for key `"+t+"`")},r=function(e,t,n){var o,a;if(Array.isArray(e)){for(o=-1,a=e.length;++o=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var c=function(){function e(e,t){for(var r=0;r=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.PersistentQueryLink=t.Link=void 0;var c=Object.assign||function(e){for(var t=1;t 2 ? len - 2 : 0);\n\t for (var key = 2; key < len; key++) {\n\t args[key - 2] = arguments[key];\n\t }\n\t if (format === undefined) {\n\t throw new Error(\n\t '`warning(condition, format, ...args)` requires a warning ' +\n\t 'message argument'\n\t );\n\t }\n\t\n\t if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n\t throw new Error(\n\t 'The warning format should be able to uniquely identify this ' +\n\t 'warning. Please, use a more descriptive format than: ' + format\n\t );\n\t }\n\t\n\t if (!condition) {\n\t var argIndex = 0;\n\t var message = 'Warning: ' +\n\t format.replace(/%s/g, function() {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch(x) {}\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Indicates that navigation was caused by a call to history.push.\n\t */\n\tvar PUSH = exports.PUSH = 'PUSH';\n\t\n\t/**\n\t * Indicates that navigation was caused by a call to history.replace.\n\t */\n\tvar REPLACE = exports.REPLACE = 'REPLACE';\n\t\n\t/**\n\t * Indicates that navigation was caused by some other action such\n\t * as using a browser's back/forward buttons and/or manually manipulating\n\t * the URL in a browser's location bar. This is the default.\n\t *\n\t * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n\t * for more information.\n\t */\n\tvar POP = exports.POP = 'POP';\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n\t return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n\t};\n\t\n\tvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n\t return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n\t};\n\t\n\t/**\n\t * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n\t *\n\t * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n\t * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n\t * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n\t */\n\tvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n\t var ua = window.navigator.userAgent;\n\t\n\t if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\t\n\t return window.history && 'pushState' in window.history;\n\t};\n\t\n\t/**\n\t * Returns false if using go(n) with hash history causes a full page reload.\n\t */\n\tvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n\t return window.navigator.userAgent.indexOf('Firefox') === -1;\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.readState = exports.saveState = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\t\n\t\n\tvar SecurityError = 'SecurityError';\n\tvar KeyPrefix = '@@History/';\n\t\n\tvar createKey = function createKey(key) {\n\t return KeyPrefix + key;\n\t};\n\t\n\tvar saveState = exports.saveState = function saveState(key, state) {\n\t if (!window.sessionStorage) {\n\t // Session storage is not available or hidden.\n\t // sessionStorage is undefined in Internet Explorer when served via file protocol.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n\t return;\n\t }\n\t\n\t try {\n\t if (state == null) {\n\t window.sessionStorage.removeItem(createKey(key));\n\t } else {\n\t window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n\t }\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return;\n\t }\n\t\n\t if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n\t // Safari \"private mode\" throws QuotaExceededError.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\t\n\t return;\n\t }\n\t\n\t throw error;\n\t }\n\t};\n\t\n\tvar readState = exports.readState = function readState(key) {\n\t var json = void 0;\n\t try {\n\t json = window.sessionStorage.getItem(createKey(key));\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return undefined;\n\t }\n\t }\n\t\n\t if (json) {\n\t try {\n\t return JSON.parse(json);\n\t } catch (error) {\n\t // Ignore invalid JSON.\n\t }\n\t }\n\t\n\t return undefined;\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tObject.defineProperty(exports, 'getUserConfirmation', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.getUserConfirmation;\n\t }\n\t});\n\tObject.defineProperty(exports, 'go', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.go;\n\t }\n\t});\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t return (0, _LocationUtils.createLocation)(window.location);\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t window.location.href = (0, _PathUtils.createPath)(location);\n\t return false; // Don't update location\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t window.location.replace((0, _PathUtils.createPath)(location));\n\t return false; // Don't update location\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _AsyncUtils = __webpack_require__(14);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tvar createHistory = function createHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var getCurrentLocation = options.getCurrentLocation;\n\t var getUserConfirmation = options.getUserConfirmation;\n\t var pushLocation = options.pushLocation;\n\t var replaceLocation = options.replaceLocation;\n\t var go = options.go;\n\t var keyLength = options.keyLength;\n\t\n\t\n\t var currentLocation = void 0;\n\t var pendingLocation = void 0;\n\t var beforeListeners = [];\n\t var listeners = [];\n\t var allKeys = [];\n\t\n\t var getCurrentIndex = function getCurrentIndex() {\n\t if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\t\n\t if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\t\n\t return -1;\n\t };\n\t\n\t var updateLocation = function updateLocation(nextLocation) {\n\t currentLocation = nextLocation;\n\t\n\t var currentIndex = getCurrentIndex();\n\t\n\t if (currentLocation.action === _Actions.PUSH) {\n\t allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n\t } else if (currentLocation.action === _Actions.REPLACE) {\n\t allKeys[currentIndex] = currentLocation.key;\n\t }\n\t\n\t listeners.forEach(function (listener) {\n\t return listener(currentLocation);\n\t });\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t beforeListeners.push(listener);\n\t\n\t return function () {\n\t return beforeListeners = beforeListeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var listen = function listen(listener) {\n\t listeners.push(listener);\n\t\n\t return function () {\n\t return listeners = listeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n\t (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n\t (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n\t return result != null ? done(result) : next();\n\t });\n\t }, function (message) {\n\t if (getUserConfirmation && typeof message === 'string') {\n\t getUserConfirmation(message, function (ok) {\n\t return callback(ok !== false);\n\t });\n\t } else {\n\t callback(message !== false);\n\t }\n\t });\n\t };\n\t\n\t var transitionTo = function transitionTo(nextLocation) {\n\t if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\t\n\t pendingLocation = nextLocation;\n\t\n\t confirmTransitionTo(nextLocation, function (ok) {\n\t if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\t\n\t pendingLocation = null;\n\t\n\t if (ok) {\n\t // Treat PUSH to same path like REPLACE to be consistent with browsers\n\t if (nextLocation.action === _Actions.PUSH) {\n\t var prevPath = (0, _PathUtils.createPath)(currentLocation);\n\t var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\t\n\t if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n\t }\n\t\n\t if (nextLocation.action === _Actions.POP) {\n\t updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.PUSH) {\n\t if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.REPLACE) {\n\t if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t }\n\t } else if (currentLocation && nextLocation.action === _Actions.POP) {\n\t var prevIndex = allKeys.indexOf(currentLocation.key);\n\t var nextIndex = allKeys.indexOf(nextLocation.key);\n\t\n\t if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n\t }\n\t });\n\t };\n\t\n\t var push = function push(input) {\n\t return transitionTo(createLocation(input, _Actions.PUSH));\n\t };\n\t\n\t var replace = function replace(input) {\n\t return transitionTo(createLocation(input, _Actions.REPLACE));\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength || 6);\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return (0, _PathUtils.createPath)(location);\n\t };\n\t\n\t var createLocation = function createLocation(location, action) {\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\t return (0, _LocationUtils.createLocation)(location, action, key);\n\t };\n\t\n\t return {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t transitionTo: transitionTo,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t createKey: createKey,\n\t createPath: _PathUtils.createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t };\n\t};\n\t\n\texports.default = createHistory;\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n\t var currentTurn = 0,\n\t isDone = false;\n\t var isSync = false,\n\t hasNext = false,\n\t doneArgs = void 0;\n\t\n\t var done = function done() {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t isDone = true;\n\t\n\t if (isSync) {\n\t // Iterate instead of recursing if possible.\n\t doneArgs = args;\n\t return;\n\t }\n\t\n\t callback.apply(undefined, args);\n\t };\n\t\n\t var next = function next() {\n\t if (isDone) return;\n\t\n\t hasNext = true;\n\t\n\t if (isSync) return; // Iterate instead of recursing if possible.\n\t\n\t isSync = true;\n\t\n\t while (!isDone && currentTurn < turns && hasNext) {\n\t hasNext = false;\n\t work(currentTurn++, next, done);\n\t }\n\t\n\t isSync = false;\n\t\n\t if (isDone) {\n\t // This means the loop finished synchronously.\n\t callback.apply(undefined, _toConsumableArray(doneArgs));\n\t return;\n\t }\n\t\n\t if (currentTurn >= turns && hasNext) {\n\t isDone = true;\n\t callback();\n\t }\n\t };\n\t\n\t next();\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n\t var result = hook(location, callback);\n\t\n\t if (hook.length < 2) {\n\t // Assume the hook runs synchronously and automatically\n\t // call the callback with the return value.\n\t callback(result);\n\t } else {\n\t false ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n\t }\n\t};\n\t\n\texports.default = runTransitionHook;\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createStateStorage = function createStateStorage(entries) {\n\t return entries.filter(function (entry) {\n\t return entry.state;\n\t }).reduce(function (memo, entry) {\n\t memo[entry.key] = entry.state;\n\t return memo;\n\t }, {});\n\t};\n\t\n\tvar createMemoryHistory = function createMemoryHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t if (Array.isArray(options)) {\n\t options = { entries: options };\n\t } else if (typeof options === 'string') {\n\t options = { entries: [options] };\n\t }\n\t\n\t var getCurrentLocation = function getCurrentLocation() {\n\t var entry = entries[current];\n\t var path = (0, _PathUtils.createPath)(entry);\n\t\n\t var key = void 0,\n\t state = void 0;\n\t if (entry.key) {\n\t key = entry.key;\n\t state = readState(key);\n\t }\n\t\n\t var init = (0, _PathUtils.parsePath)(path);\n\t\n\t return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n\t };\n\t\n\t var canGo = function canGo(n) {\n\t var index = current + n;\n\t return index >= 0 && index < entries.length;\n\t };\n\t\n\t var go = function go(n) {\n\t if (!n) return;\n\t\n\t if (!canGo(n)) {\n\t false ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\t\n\t return;\n\t }\n\t\n\t current += n;\n\t var currentLocation = getCurrentLocation();\n\t\n\t // Change action to POP\n\t history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n\t };\n\t\n\t var pushLocation = function pushLocation(location) {\n\t current += 1;\n\t\n\t if (current < entries.length) entries.splice(current);\n\t\n\t entries.push(location);\n\t\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var replaceLocation = function replaceLocation(location) {\n\t entries[current] = location;\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var history = (0, _createHistory2.default)(_extends({}, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var _options = options;\n\t var entries = _options.entries;\n\t var current = _options.current;\n\t\n\t\n\t if (typeof entries === 'string') {\n\t entries = [entries];\n\t } else if (!Array.isArray(entries)) {\n\t entries = ['/'];\n\t }\n\t\n\t entries = entries.map(function (entry) {\n\t return (0, _LocationUtils.createLocation)(entry);\n\t });\n\t\n\t if (current == null) {\n\t current = entries.length - 1;\n\t } else {\n\t !(current >= 0 && current < entries.length) ? false ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n\t }\n\t\n\t var storage = createStateStorage(entries);\n\t\n\t var saveState = function saveState(key, state) {\n\t return storage[key] = state;\n\t };\n\t\n\t var readState = function readState(key) {\n\t return storage[key];\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createMemoryHistory;\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar useBasename = function useBasename(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var basename = options.basename;\n\t\n\t\n\t var addBasename = function addBasename(location) {\n\t if (!location) return location;\n\t\n\t if (basename && location.basename == null) {\n\t if (location.pathname.indexOf(basename) === 0) {\n\t location.pathname = location.pathname.substring(basename.length);\n\t location.basename = basename;\n\t\n\t if (location.pathname === '') location.pathname = '/';\n\t } else {\n\t location.basename = '';\n\t }\n\t }\n\t\n\t return location;\n\t };\n\t\n\t var prependBasename = function prependBasename(location) {\n\t if (!basename) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var pname = object.pathname;\n\t var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n\t var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n\t var pathname = normalizedBasename + normalizedPathname;\n\t\n\t return _extends({}, location, {\n\t pathname: pathname\n\t });\n\t };\n\t\n\t // Override all read methods with basename-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return addBasename(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(addBasename(location));\n\t });\n\t };\n\t\n\t // Override all write methods with basename-aware versions.\n\t var push = function push(location) {\n\t return history.push(prependBasename(location));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(prependBasename(location));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(prependBasename(location));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(prependBasename(location));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useBasename;\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _queryString = __webpack_require__(19);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n\t return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n\t};\n\t\n\tvar defaultParseQueryString = _queryString.parse;\n\t\n\t/**\n\t * Returns a new createHistory function that may be used to create\n\t * history objects that know how to handle URL queries.\n\t */\n\tvar useQueries = function useQueries(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var stringifyQuery = options.stringifyQuery;\n\t var parseQueryString = options.parseQueryString;\n\t\n\t\n\t if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\t\n\t if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\t\n\t var decodeQuery = function decodeQuery(location) {\n\t if (!location) return location;\n\t\n\t if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\t\n\t return location;\n\t };\n\t\n\t var encodeQuery = function encodeQuery(location, query) {\n\t if (query == null) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var queryString = stringifyQuery(query);\n\t var search = queryString ? '?' + queryString : '';\n\t\n\t return _extends({}, object, {\n\t search: search\n\t });\n\t };\n\t\n\t // Override all read methods with query-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return decodeQuery(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(decodeQuery(location));\n\t });\n\t };\n\t\n\t // Override all write methods with query-aware versions.\n\t var push = function push(location) {\n\t return history.push(encodeQuery(location, location.query));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(encodeQuery(location, location.query));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(encodeQuery(location, location.query));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(encodeQuery(location, location.query));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\t\n\t if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\t\n\t return decodeQuery(newLocation);\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useQueries;\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar strictUriEncode = __webpack_require__(20);\n\tvar objectAssign = __webpack_require__(21);\n\t\n\tfunction encode(value, opts) {\n\t\tif (opts.encode) {\n\t\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t\t}\n\t\n\t\treturn value;\n\t}\n\t\n\texports.extract = function (str) {\n\t\treturn str.split('?')[1] || '';\n\t};\n\t\n\texports.parse = function (str) {\n\t\t// Create an object with no prototype\n\t\t// https://github.com/sindresorhus/query-string/issues/47\n\t\tvar ret = Object.create(null);\n\t\n\t\tif (typeof str !== 'string') {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\t\n\t\tif (!str) {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr.split('&').forEach(function (param) {\n\t\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\t\tvar key = parts.shift();\n\t\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\t\n\t\t\tkey = decodeURIComponent(key);\n\t\n\t\t\t// missing `=` should be `null`:\n\t\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\t\tval = val === undefined ? null : decodeURIComponent(val);\n\t\n\t\t\tif (ret[key] === undefined) {\n\t\t\t\tret[key] = val;\n\t\t\t} else if (Array.isArray(ret[key])) {\n\t\t\t\tret[key].push(val);\n\t\t\t} else {\n\t\t\t\tret[key] = [ret[key], val];\n\t\t\t}\n\t\t});\n\t\n\t\treturn ret;\n\t};\n\t\n\texports.stringify = function (obj, opts) {\n\t\tvar defaults = {\n\t\t\tencode: true,\n\t\t\tstrict: true\n\t\t};\n\t\n\t\topts = objectAssign(defaults, opts);\n\t\n\t\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\t\tvar val = obj[key];\n\t\n\t\t\tif (val === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\n\t\t\tif (val === null) {\n\t\t\t\treturn key;\n\t\t\t}\n\t\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\tvar result = [];\n\t\n\t\t\t\tval.slice().sort().forEach(function (val2) {\n\t\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (val2 === null) {\n\t\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\treturn result.join('&');\n\t\t\t}\n\t\n\t\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t\t}).filter(function (x) {\n\t\t\treturn x.length > 0;\n\t\t}).join('&') : '';\n\t};\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function (str) {\n\t\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t\t});\n\t};\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (Object.getOwnPropertySymbols) {\n\t\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar LOCATION_CHANGED = exports.LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\n\tvar PUSH = exports.PUSH = 'ROUTER_PUSH';\n\tvar REPLACE = exports.REPLACE = 'ROUTER_REPLACE';\n\tvar GO = exports.GO = 'ROUTER_GO';\n\tvar GO_BACK = exports.GO_BACK = 'ROUTER_GO_BACK';\n\tvar GO_FORWARD = exports.GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _urlPattern = __webpack_require__(24);\n\t\n\tvar _urlPattern2 = _interopRequireDefault(_urlPattern);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (routes) {\n\t var routeDictionary = Object.keys(routes).map(function (route) {\n\t return {\n\t route: route,\n\t pattern: new _urlPattern2.default(route),\n\t result: routes[route]\n\t };\n\t });\n\t\n\t return function (incomingUrl) {\n\t // Discard query strings\n\t var route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\t\n\t // Find the route that matches the URL\n\t for (var key in routeDictionary) {\n\t if (routeDictionary.hasOwnProperty(key)) {\n\t var storedRoute = routeDictionary[key];\n\t var match = storedRoute.pattern.match(route);\n\t\n\t if (match) {\n\t // Return the matched params and user-defined result object\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t }\n\t }\n\t\n\t return null;\n\t };\n\t};\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0\n\tvar slice = [].slice;\n\t\n\t(function(root, factory) {\n\t if (('function' === \"function\") && (__webpack_require__(25) != null)) {\n\t return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports !== \"undefined\" && exports !== null) {\n\t return module.exports = factory();\n\t } else {\n\t return root.UrlPattern = factory();\n\t }\n\t})(this, function() {\n\t var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n\t escapeForRegex = function(string) {\n\t return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t };\n\t concatMap = function(array, f) {\n\t var i, length, results;\n\t results = [];\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t results = results.concat(f(array[i]));\n\t }\n\t return results;\n\t };\n\t stringConcatMap = function(array, f) {\n\t var i, length, result;\n\t result = '';\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t result += f(array[i]);\n\t }\n\t return result;\n\t };\n\t regexGroupCount = function(regex) {\n\t return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n\t };\n\t keysAndValuesToObject = function(keys, values) {\n\t var i, key, length, object, value;\n\t object = {};\n\t i = -1;\n\t length = keys.length;\n\t while (++i < length) {\n\t key = keys[i];\n\t value = values[i];\n\t if (value == null) {\n\t continue;\n\t }\n\t if (object[key] != null) {\n\t if (!Array.isArray(object[key])) {\n\t object[key] = [object[key]];\n\t }\n\t object[key].push(value);\n\t } else {\n\t object[key] = value;\n\t }\n\t }\n\t return object;\n\t };\n\t P = {};\n\t P.Result = function(value, rest) {\n\t this.value = value;\n\t this.rest = rest;\n\t };\n\t P.Tagged = function(tag, value) {\n\t this.tag = tag;\n\t this.value = value;\n\t };\n\t P.tag = function(tag, parser) {\n\t return function(input) {\n\t var result, tagged;\n\t result = parser(input);\n\t if (result == null) {\n\t return;\n\t }\n\t tagged = new P.Tagged(tag, result.value);\n\t return new P.Result(tagged, result.rest);\n\t };\n\t };\n\t P.regex = function(regex) {\n\t return function(input) {\n\t var matches, result;\n\t matches = regex.exec(input);\n\t if (matches == null) {\n\t return;\n\t }\n\t result = matches[0];\n\t return new P.Result(result, input.slice(result.length));\n\t };\n\t };\n\t P.sequence = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, rest, result, values;\n\t i = -1;\n\t length = parsers.length;\n\t values = [];\n\t rest = input;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(rest);\n\t if (result == null) {\n\t return;\n\t }\n\t values.push(result.value);\n\t rest = result.rest;\n\t }\n\t return new P.Result(values, rest);\n\t };\n\t };\n\t P.pick = function() {\n\t var indexes, parsers;\n\t indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n\t return function(input) {\n\t var array, result;\n\t result = P.sequence.apply(P, parsers)(input);\n\t if (result == null) {\n\t return;\n\t }\n\t array = result.value;\n\t result.value = array[indexes];\n\t return result;\n\t };\n\t };\n\t P.string = function(string) {\n\t var length;\n\t length = string.length;\n\t return function(input) {\n\t if (input.slice(0, length) === string) {\n\t return new P.Result(string, input.slice(length));\n\t }\n\t };\n\t };\n\t P.lazy = function(fn) {\n\t var cached;\n\t cached = null;\n\t return function(input) {\n\t if (cached == null) {\n\t cached = fn();\n\t }\n\t return cached(input);\n\t };\n\t };\n\t P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n\t var endResult, parserResult, rest, results;\n\t rest = input;\n\t results = stringResult ? '' : [];\n\t while (true) {\n\t if (end != null) {\n\t endResult = end(rest);\n\t if (endResult != null) {\n\t break;\n\t }\n\t }\n\t parserResult = parser(rest);\n\t if (parserResult == null) {\n\t break;\n\t }\n\t if (stringResult) {\n\t results += parserResult.value;\n\t } else {\n\t results.push(parserResult.value);\n\t }\n\t rest = parserResult.rest;\n\t }\n\t if (atLeastOneResultRequired && results.length === 0) {\n\t return;\n\t }\n\t return new P.Result(results, rest);\n\t };\n\t P.many1 = function(parser) {\n\t return function(input) {\n\t return P.baseMany(parser, null, false, true, input);\n\t };\n\t };\n\t P.concatMany1Till = function(parser, end) {\n\t return function(input) {\n\t return P.baseMany(parser, end, true, true, input);\n\t };\n\t };\n\t P.firstChoice = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, result;\n\t i = -1;\n\t length = parsers.length;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(input);\n\t if (result != null) {\n\t return result;\n\t }\n\t }\n\t };\n\t };\n\t newParser = function(options) {\n\t var U;\n\t U = {};\n\t U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n\t U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n\t return U.pattern;\n\t }), P.string(options.optionalSegmentEndChar)));\n\t U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n\t U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n\t return U.name;\n\t })));\n\t U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n\t U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n\t return U.escapedChar;\n\t }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n\t U.token = P.lazy(function() {\n\t return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n\t });\n\t U.pattern = P.many1(P.lazy(function() {\n\t return U.token;\n\t }));\n\t return U;\n\t };\n\t defaultOptions = {\n\t escapeChar: '\\\\',\n\t segmentNameStartChar: ':',\n\t segmentValueCharset: 'a-zA-Z0-9-_~ %',\n\t segmentNameCharset: 'a-zA-Z0-9',\n\t optionalSegmentStartChar: '(',\n\t optionalSegmentEndChar: ')',\n\t wildcardChar: '*'\n\t };\n\t baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return baseAstNodeToRegexString(node, segmentValueCharset);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return '(.*?)';\n\t case 'named':\n\t return \"([\" + segmentValueCharset + \"]+)\";\n\t case 'static':\n\t return escapeForRegex(astNode.value);\n\t case 'optional':\n\t return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n\t }\n\t };\n\t astNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (segmentValueCharset == null) {\n\t segmentValueCharset = defaultOptions.segmentValueCharset;\n\t }\n\t return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n\t };\n\t astNodeToNames = function(astNode) {\n\t if (Array.isArray(astNode)) {\n\t return concatMap(astNode, astNodeToNames);\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return ['_'];\n\t case 'named':\n\t return [astNode.value];\n\t case 'static':\n\t return [];\n\t case 'optional':\n\t return astNodeToNames(astNode.value);\n\t }\n\t };\n\t getParam = function(params, key, nextIndexes, sideEffects) {\n\t var index, maxIndex, result, value;\n\t if (sideEffects == null) {\n\t sideEffects = false;\n\t }\n\t value = params[key];\n\t if (value == null) {\n\t if (sideEffects) {\n\t throw new Error(\"no values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t index = nextIndexes[key] || 0;\n\t maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n\t if (index > maxIndex) {\n\t if (sideEffects) {\n\t throw new Error(\"too few values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t result = Array.isArray(value) ? value[index] : value;\n\t if (sideEffects) {\n\t nextIndexes[key] = index + 1;\n\t }\n\t return result;\n\t };\n\t astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n\t var i, length;\n\t if (Array.isArray(astNode)) {\n\t i = -1;\n\t length = astNode.length;\n\t while (++i < length) {\n\t if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, false) != null;\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, false) != null;\n\t case 'static':\n\t return false;\n\t case 'optional':\n\t return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n\t }\n\t };\n\t stringify = function(astNode, params, nextIndexes) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return stringify(node, params, nextIndexes);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, true);\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, true);\n\t case 'static':\n\t return astNode.value;\n\t case 'optional':\n\t if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n\t return stringify(astNode.value, params, nextIndexes);\n\t } else {\n\t return '';\n\t }\n\t }\n\t };\n\t UrlPattern = function(arg1, arg2) {\n\t var groupCount, options, parsed, parser, withoutWhitespace;\n\t if (arg1 instanceof UrlPattern) {\n\t this.isRegex = arg1.isRegex;\n\t this.regex = arg1.regex;\n\t this.ast = arg1.ast;\n\t this.names = arg1.names;\n\t return;\n\t }\n\t this.isRegex = arg1 instanceof RegExp;\n\t if (!(('string' === typeof arg1) || this.isRegex)) {\n\t throw new TypeError('argument must be a regex or a string');\n\t }\n\t if (this.isRegex) {\n\t this.regex = arg1;\n\t if (arg2 != null) {\n\t if (!Array.isArray(arg2)) {\n\t throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n\t }\n\t groupCount = regexGroupCount(this.regex);\n\t if (arg2.length !== groupCount) {\n\t throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n\t }\n\t this.names = arg2;\n\t }\n\t return;\n\t }\n\t if (arg1 === '') {\n\t throw new Error('argument must not be the empty string');\n\t }\n\t withoutWhitespace = arg1.replace(/\\s+/g, '');\n\t if (withoutWhitespace !== arg1) {\n\t throw new Error('argument must not contain whitespace');\n\t }\n\t options = {\n\t escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n\t segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n\t segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n\t segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n\t optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n\t optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n\t wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n\t };\n\t parser = newParser(options);\n\t parsed = parser.pattern(arg1);\n\t if (parsed == null) {\n\t throw new Error(\"couldn't parse pattern\");\n\t }\n\t if (parsed.rest !== '') {\n\t throw new Error(\"could only partially parse pattern\");\n\t }\n\t this.ast = parsed.value;\n\t this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n\t this.names = astNodeToNames(this.ast);\n\t };\n\t UrlPattern.prototype.match = function(url) {\n\t var groups, match;\n\t match = this.regex.exec(url);\n\t if (match == null) {\n\t return null;\n\t }\n\t groups = match.slice(1);\n\t if (this.names) {\n\t return keysAndValuesToObject(this.names, groups);\n\t } else {\n\t return groups;\n\t }\n\t };\n\t UrlPattern.prototype.stringify = function(params) {\n\t if (params == null) {\n\t params = {};\n\t }\n\t if (this.isRegex) {\n\t throw new Error(\"can't stringify patterns generated from a regex\");\n\t }\n\t if (params !== Object(params)) {\n\t throw new Error(\"argument must be an object or undefined\");\n\t }\n\t return stringify(this.ast, params, {});\n\t };\n\t UrlPattern.escapeForRegex = escapeForRegex;\n\t UrlPattern.concatMap = concatMap;\n\t UrlPattern.stringConcatMap = stringConcatMap;\n\t UrlPattern.regexGroupCount = regexGroupCount;\n\t UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n\t UrlPattern.P = P;\n\t UrlPattern.newParser = newParser;\n\t UrlPattern.defaultOptions = defaultOptions;\n\t UrlPattern.astNodeToRegexString = astNodeToRegexString;\n\t UrlPattern.astNodeToNames = astNodeToNames;\n\t UrlPattern.getParam = getParam;\n\t UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n\t UrlPattern.stringify = stringify;\n\t return UrlPattern;\n\t});\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;\r\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, {}))\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\texports.default = function () {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (action.type === _actionTypes.LOCATION_CHANGED) {\n\t // No-op the initial route action\n\t if (state && state.pathname === action.payload.pathname) {\n\t return state;\n\t }\n\t\n\t return _extends({}, action.payload, {\n\t previous: state.current\n\t });\n\t }\n\t return state;\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var _ref$pathname = _ref.pathname;\n\t var pathname = _ref$pathname === undefined ? '/' : _ref$pathname;\n\t var _ref$query = _ref.query;\n\t var query = _ref$query === undefined ? {} : _ref$query;\n\t var routes = _ref.routes;\n\t var history = _ref.history;\n\t return _extends({}, history.createLocation({\n\t pathname: pathname,\n\t query: query\n\t }), (0, _createMatcher2.default)(routes)(pathname));\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\texports.default = function (_ref) {\n\t var store = _ref.store;\n\t return function (ComposedComponent) {\n\t var RouterProvider = function (_Component) {\n\t _inherits(RouterProvider, _Component);\n\t\n\t function RouterProvider(props) {\n\t _classCallCheck(this, RouterProvider);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RouterProvider).call(this, props));\n\t\n\t _this.router = { store: store };\n\t return _this;\n\t }\n\t\n\t _createClass(RouterProvider, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t router: this.router\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children']); // eslint-disable-line no-unused-vars\n\t\n\t\n\t return _react2.default.createElement(ComposedComponent, rest);\n\t }\n\t }]);\n\t\n\t return RouterProvider;\n\t }(_react.Component);\n\t\n\t RouterProvider.childContextTypes = {\n\t router: _react.PropTypes.object\n\t };\n\t\n\t RouterProvider.propTypes = {\n\t children: _react.PropTypes.node\n\t };\n\t\n\t return RouterProvider;\n\t };\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_29__;\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.PersistentQueryLink = exports.Link = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar LEFT_MOUSE_BUTTON = 0;\n\t\n\tvar normalizeHref = function normalizeHref(location) {\n\t return '' + (location.basename || '') + location.pathname;\n\t};\n\t\n\tvar normalizeLocation = function normalizeLocation(href) {\n\t if (typeof href === 'string') {\n\t var pathnameAndQuery = href.split('?');\n\t var pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n\t var query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n\t return query ? { pathname: pathname, search: '?' + query } : { pathname: pathname };\n\t }\n\t return href;\n\t};\n\t\n\tvar resolveQueryForLocation = function resolveQueryForLocation(_ref) {\n\t var linkLocation = _ref.linkLocation;\n\t var persistQuery = _ref.persistQuery;\n\t var currentLocation = _ref.currentLocation;\n\t\n\t var currentQuery = currentLocation && currentLocation.query;\n\t\n\t // Only use the query from state if it exists\n\t // and the href doesn't provide its own query\n\t if (persistQuery && currentQuery && !linkLocation.search && !linkLocation.query) {\n\t return {\n\t pathname: linkLocation.pathname,\n\t query: currentQuery\n\t };\n\t }\n\t\n\t return linkLocation;\n\t};\n\t\n\tvar isNotLeftClick = function isNotLeftClick(e) {\n\t return e.button && e.button !== LEFT_MOUSE_BUTTON;\n\t};\n\tvar hasModifier = function hasModifier(e) {\n\t return Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\t};\n\t\n\tvar _onClick = function _onClick(_ref2) {\n\t var e = _ref2.e;\n\t var target = _ref2.target;\n\t var location = _ref2.location;\n\t var replaceState = _ref2.replaceState;\n\t var router = _ref2.router;\n\t\n\t if (hasModifier(e) || isNotLeftClick(e) || target) {\n\t return;\n\t }\n\t\n\t e.preventDefault();\n\t\n\t if (router) {\n\t router.store.dispatch({\n\t type: replaceState ? _actionTypes.REPLACE : _actionTypes.PUSH,\n\t payload: location\n\t });\n\t }\n\t};\n\t\n\tvar Link = function Link(props, context) {\n\t var href = props.href;\n\t var target = props.target;\n\t var persistQuery = props.persistQuery;\n\t var replaceState = props.replaceState;\n\t var children = props.children;\n\t var router = context.router;\n\t\n\t\n\t var locationDescriptor = resolveQueryForLocation({\n\t linkLocation: normalizeLocation(href),\n\t currentLocation: router.store.getState().router,\n\t persistQuery: persistQuery\n\t });\n\t\n\t var location = router.store.history.createLocation(locationDescriptor);\n\t\n\t return _react2.default.createElement(\n\t 'a',\n\t {\n\t className: props.className,\n\t style: props.style,\n\t href: normalizeHref(location),\n\t onClick: function onClick(e) {\n\t return _onClick({\n\t e: e,\n\t target: target,\n\t location: location,\n\t replaceState: replaceState,\n\t router: router\n\t });\n\t }\n\t },\n\t children\n\t );\n\t};\n\t\n\tLink.propTypes = {\n\t href: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.object]),\n\t replaceState: _react.PropTypes.bool,\n\t persistQuery: _react.PropTypes.bool,\n\t target: _react.PropTypes.string,\n\t className: _react.PropTypes.string,\n\t style: _react.PropTypes.object,\n\t children: _react.PropTypes.node\n\t};\n\t\n\tLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar PersistentQueryLink = function (_Component) {\n\t _inherits(PersistentQueryLink, _Component);\n\t\n\t function PersistentQueryLink() {\n\t _classCallCheck(this, PersistentQueryLink);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(PersistentQueryLink).apply(this, arguments));\n\t }\n\t\n\t _createClass(PersistentQueryLink, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children']);\n\t\n\t return _react2.default.createElement(\n\t Link,\n\t _extends({}, rest, { persistQuery: true }),\n\t children\n\t );\n\t }\n\t }]);\n\t\n\t return PersistentQueryLink;\n\t}(_react.Component);\n\t\n\tPersistentQueryLink.propTypes = {\n\t children: _react.PropTypes.node\n\t};\n\t\n\tPersistentQueryLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.Link = Link;\n\texports.PersistentQueryLink = PersistentQueryLink;\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Fragment = function Fragment(props, context) {\n\t var forRoute = props.forRoute;\n\t var forRoutes = props.forRoutes;\n\t var withConditions = props.withConditions;\n\t var children = props.children;\n\t var store = context.router.store;\n\t var matchRoute = store.matchRoute;\n\t\n\t var _store$getState = store.getState();\n\t\n\t var location = _store$getState.router;\n\t\n\t\n\t if (forRoute && matchRoute(location.pathname).route !== forRoute) {\n\t return null;\n\t }\n\t\n\t if (forRoutes) {\n\t var anyMatch = forRoutes.some(function (route) {\n\t return matchRoute(location.pathname).route === route;\n\t });\n\t\n\t if (!anyMatch) {\n\t return null;\n\t }\n\t }\n\t\n\t if (withConditions && !withConditions(location)) {\n\t return null;\n\t }\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t children\n\t );\n\t};\n\t\n\tFragment.propTypes = {\n\t forRoute: _react.PropTypes.string,\n\t forRoutes: _react.PropTypes.arrayOf(_react.PropTypes.string),\n\t withConditions: _react.PropTypes.func,\n\t children: _react.PropTypes.node\n\t};\n\t\n\tFragment.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.default = Fragment;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** redux-little-router.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 4aad0f88243a9e954e01\n **/","import createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport Fragment from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","import createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\nimport initialRouterState from './initial-router-state';\n\nexport const locationDidChange = ({ location, matchRoute }) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = location => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\nexport default ({\n routes,\n pathname,\n query,\n basename = '/',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}) => {\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return createStore => (reducer, initialState, enhancer) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = {...state};\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...reducer(vanillaState, action),\n router: routerReducer(state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query, routes, history\n }\n )} : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {...store, dispatch, history, matchRoute};\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-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'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 invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { 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/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\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 ? \"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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","/**\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'use strict';\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 = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\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}\n\nmodule.exports = warning;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 8\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 13\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 14\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 16\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\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 return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 17\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\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 newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn key;\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().sort().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 21\n ** module chunks = 0\n **/","export const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","import UrlPattern from 'url-pattern';\n\nexport default routes => {\n const routeDictionary = Object.keys(routes).map(route => ({\n route,\n pattern: new UrlPattern(route),\n result: routes[route]\n }));\n\n return incomingUrl => {\n // Discard query strings\n const route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\n // Find the route that matches the URL\n for (const key in routeDictionary) {\n if (routeDictionary.hasOwnProperty(key)) {\n const storedRoute = routeDictionary[key];\n const match = storedRoute.pattern.match(route);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n }\n\n return null;\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 24\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 25\n ** module chunks = 0\n **/","import { LOCATION_CHANGED } from './action-types';\n\nexport default (state = {}, action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n return {\n ...action.payload,\n previous: state.current\n };\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","import createMatcher from './create-matcher';\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./initial-router-state.js\n **/","import React, { Component, PropTypes } from 'react';\n\nexport default ({ store }) => ComposedComponent => {\n class RouterProvider extends Component {\n constructor(props) {\n super(props);\n this.router = { store };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n render() {\n const { children, ...rest } = this.props; // eslint-disable-line no-unused-vars\n return ;\n }\n }\n\n RouterProvider.childContextTypes = {\n router: PropTypes.object\n };\n\n RouterProvider.propTypes = {\n children: PropTypes.node\n };\n\n return RouterProvider;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_29__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 29\n ** module chunks = 0\n **/","import React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst onClick = ({e, target, location, replaceState, router}) => {\n if (hasModifier(e) || isNotLeftClick(e) || target) {\n return;\n }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (props, context) => {\n const {\n href,\n target,\n persistQuery,\n replaceState,\n children\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n onClick({\n e,\n target,\n location,\n replaceState,\n router\n })}\n >\n {children}\n \n );\n};\n\nLink.propTypes = {\n href: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n replaceState: PropTypes.bool,\n persistQuery: PropTypes.bool,\n target: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.node\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","import React, { PropTypes } from 'react';\n\nconst Fragment = (props, context) => {\n const { forRoute, forRoutes, withConditions, children } = props;\n const { store } = context.router;\n const { matchRoute } = store;\n const { router: location } = store.getState();\n\n if (\n forRoute &&\n matchRoute(location.pathname).route !== forRoute\n ) {\n return null;\n }\n\n if (forRoutes) {\n const anyMatch = forRoutes.some(route =>\n matchRoute(location.pathname).route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nFragment.propTypes = {\n forRoute: PropTypes.string,\n forRoutes: PropTypes.arrayOf(PropTypes.string),\n withConditions: PropTypes.func,\n children: PropTypes.node\n};\n\nFragment.contextTypes = {\n router: PropTypes.object\n};\n\nexport default Fragment;\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///redux-little-router.min.js","webpack:///webpack/bootstrap 5255a76693118b9cafbf","webpack:///./index.js","webpack:///./store-enhancer.js","webpack:///../~/history/lib/createBrowserHistory.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/lib/ExecutionEnvironment.js","webpack:///../~/history/lib/BrowserProtocol.js","webpack:///../~/history/lib/LocationUtils.js","webpack:///../~/history/lib/PathUtils.js","webpack:///../~/warning/browser.js","webpack:///../~/history/lib/Actions.js","webpack:///../~/history/lib/DOMUtils.js","webpack:///../~/history/lib/DOMStateStorage.js","webpack:///../~/history/lib/RefreshProtocol.js","webpack:///../~/history/lib/createHistory.js","webpack:///../~/history/lib/AsyncUtils.js","webpack:///../~/history/lib/runTransitionHook.js","webpack:///../~/history/lib/createMemoryHistory.js","webpack:///../~/history/lib/useBasename.js","webpack:///../~/history/lib/useQueries.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./action-types.js","webpack:///./create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./reducer.js","webpack:///./initial-router-state.js","webpack:///./provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./link.js","webpack:///./fragment.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_29__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","createMatcher","locationDidChange","routerReducer","GO_BACK","GO_FORWARD","GO","REPLACE","PUSH","LOCATION_CHANGED","Fragment","PersistentQueryLink","Link","provideRouter","initializeCurrentLocation","createStoreWithRouter","undefined","_storeEnhancer","_storeEnhancer2","_provider","_provider2","_link","_fragment","_fragment2","_reducer","_reducer2","_createMatcher","_createMatcher2","_actionTypes","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","_createBrowserHistory","_createBrowserHistory2","_createMemoryHistory","_createMemoryHistory2","_useBasename","_useBasename2","_useQueries","_useQueries2","_initialRouterState","_initialRouterState2","_ref","location","matchRoute","pathname","type","payload","resolveHistory","_ref2","basename","forServerRender","historyFactory","_ref3","routes","query","_ref3$basename","_ref3$forServerRender","_ref3$createMatcher","userHistory","history","createStore","reducer","initialState","enhancer","enhancedReducer","state","action","vanillaState","router","newState","Array","isArray","nextState","nextEffects","store","listen","dispatch","push","replace","go","goBack","goForward","_interopRequireWildcard","newObj","_invariant","_invariant2","_ExecutionEnvironment","_BrowserProtocol","BrowserProtocol","_RefreshProtocol","RefreshProtocol","_DOMUtils","_createHistory","_createHistory2","createBrowserHistory","options","canUseDOM","useRefresh","forceRefresh","supportsHistory","Protocol","getUserConfirmation","getCurrentLocation","pushLocation","replaceLocation","listenerCount","stopListener","startListener","listener","before","transitionTo","unlisten","listenBefore","invariant","condition","format","a","b","d","e","f","error","Error","args","argIndex","name","framesToPop","window","document","createElement","_LocationUtils","_DOMStateStorage","_PathUtils","PopStateEvent","_createLocation","historyState","createLocation","search","hash","readState","updateLocation","message","callback","confirm","handlePopState","event","addEventListener","removeEventListener","updateState","saveState","createPath","path","pushState","replaceState","n","locationsAreEqual","statesAreEqual","createQuery","_typeof","Symbol","iterator","constructor","_Actions","isDate","props","create","input","POP","object","parsePath","toString","typeofA","typeofB","every","item","index","keys","getQueryStringValueFromPath","stripQueryStringValueFromPath","addQueryStringValueToPath","isAbsolutePath","_warning","extractPath","charAt","_parsePath","indexOf","_parsePath2","RegExp","match","prefix","suffix","_parsePath3","string","substring","hashIndex","searchIndex","warning","node","attachEvent","detachEvent","ua","navigator","userAgent","supportsGoWithoutReloadUsingHash","QuotaExceededErrors","SecurityError","KeyPrefix","createKey","sessionStorage","removeItem","setItem","JSON","stringify","json","getItem","parse","enumerable","get","href","_toConsumableArray","arr","arr2","from","_AsyncUtils","_runTransitionHook","_runTransitionHook2","createHistory","keyLength","currentLocation","pendingLocation","beforeListeners","listeners","allKeys","getCurrentIndex","nextLocation","currentIndex","concat","slice","forEach","filter","confirmTransitionTo","loopAsync","next","done","result","ok","prevPath","nextPath","prevIndex","nextIndex","Math","random","substr","createHref","turns","work","currentTurn","isDone","isSync","hasNext","doneArgs","_len","_key","apply","runTransitionHook","hook","createStateStorage","entries","entry","reduce","memo","createMemoryHistory","current","init","canGo","splice","_options","map","storage","useBasename","addBasename","prependBasename","pname","normalizedBasename","normalizedPathname","_queryString","defaultStringifyQuery","defaultParseQueryString","useQueries","stringifyQuery","parseQueryString","decodeQuery","encodeQuery","queryString","newLocation","encode","opts","strict","strictUriEncode","encodeURIComponent","objectAssign","extract","str","split","ret","trim","param","parts","shift","val","join","decodeURIComponent","defaults","sort","val2","x","charCodeAt","toUpperCase","toObject","TypeError","shouldUseNative","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","test3","letter","propIsEnumerable","propertyIsEnumerable","symbols","to","s","getOwnPropertySymbols","_urlPattern","_urlPattern2","routeDictionary","route","pattern","incomingUrl","storedRoute","params","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","UrlPattern","P","astNodeContainsSegmentsForProvidedParams","astNodeToNames","astNodeToRegexString","baseAstNodeToRegexString","concatMap","defaultOptions","escapeForRegex","getParam","keysAndValuesToObject","newParser","regexGroupCount","stringConcatMap","array","results","regex","exec","values","Result","rest","Tagged","tag","parser","tagged","matches","sequence","parsers","pick","indexes","lazy","fn","cached","baseMany","end","stringResult","atLeastOneResultRequired","endResult","parserResult","many1","concatMany1Till","firstChoice","U","wildcard","wildcardChar","optional","optionalSegmentStartChar","optionalSegmentEndChar","segmentNameCharset","named","segmentNameStartChar","escapedChar","escapeChar","token","segmentValueCharset","astNode","nextIndexes","sideEffects","maxIndex","arg1","arg2","groupCount","parsed","withoutWhitespace","isRegex","ast","names","url","groups","__webpack_amd_options__","previous","_ref$pathname","_ref$query","_objectWithoutProperties","_classCallCheck","instance","Constructor","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","writable","configurable","setPrototypeOf","__proto__","_createClass","defineProperties","descriptor","protoProps","staticProps","_react","_react2","ComposedComponent","RouterProvider","_Component","_this","getPrototypeOf","_props","children","Component","childContextTypes","PropTypes","propTypes","LEFT_MOUSE_BUTTON","normalizeHref","normalizeLocation","pathnameAndQuery","resolveQueryForLocation","linkLocation","persistQuery","currentQuery","isNotLeftClick","button","hasModifier","Boolean","shiftKey","altKey","metaKey","ctrlKey","_onClick","preventDefault","context","locationDescriptor","getState","className","style","onClick","oneOfType","bool","contextTypes","forRoute","forRoutes","withConditions","_store$getState","anyMatch","some","arrayOf","func"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,EAAAG,QAAA,UACA,kBAAAC,gBAAAC,IACAD,QAAA,SAAAJ,GACA,gBAAAC,SACAA,QAAA,kBAAAD,EAAAG,QAAA,UAEAJ,EAAA,kBAAAC,EAAAD,EAAA,QACCO,KAAA,SAAAC,GACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAT,OAGA,IAAAC,GAAAS,EAAAD,IACAT,WACAW,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAZ,EAAAD,QAAAC,IAAAD,QAAAQ,GAGAP,EAAAW,QAAA,EAGAX,EAAAD,QAvBA,GAAAU,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAASP,EAAQD,EAASQ,GAE/B,YA+BA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GA7BvFG,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,IAETvB,EAAQwB,cAAgBxB,EAAQyB,kBAAoBzB,EAAQ0B,cAAgB1B,EAAQ2B,QAAU3B,EAAQ4B,WAAa5B,EAAQ6B,GAAK7B,EAAQ8B,QAAU9B,EAAQ+B,KAAO/B,EAAQgC,iBAAmBhC,EAAQiC,SAAWjC,EAAQkC,oBAAsBlC,EAAQmC,KAAOnC,EAAQoC,cAAgBpC,EAAQqC,0BAA4BrC,EAAQsC,sBAAwBC,ME7DzV,IAAAC,GAAAhC,EAAA,GFiEKiC,EAAkBxB,EAAuBuB,GE5D9CE,EAAAlC,EAAA,IFgEKmC,EAAa1B,EAAuByB,GE/DzCE,EAAApC,EAAA,IACAqC,EAAArC,EAAA,IFoEKsC,EAAa7B,EAAuB4B,GElEzCE,EAAAvC,EAAA,IFsEKwC,EAAY/B,EAAuB8B,GErExCE,EAAAzC,EAAA,IFyEK0C,EAAkBjC,EAAuBgC,GEvE9CE,EAAA3C,EAAA,GF6ECR,GElECsC,sBFoEuBG,aACxBzC,EEpECqC,0BFoEmCG,EAAeH,0BACnDrC,EElECoC,cFqEeO,aAChB3C,EErECmC,KFqEcS,EAAMT,KACrBnC,EErECkC,oBFqE6BU,EAAMV,oBACpClC,EErECiC,SFqEkBa,aACnB9C,EEnECgC,iBFsEkBmB,EAAanB,iBAChChC,EEtEC+B,KFsEcoB,EAAapB,KAC5B/B,EEtEC8B,QFsEiBqB,EAAarB,QAC/B9B,EEtEC6B,GFsEYsB,EAAatB,GAC1B7B,EEtEC4B,WFsEoBuB,EAAavB,WAClC5B,EEtEC2B,QFsEiBwB,EAAaxB,QAC/B3B,EEpEC0B,cFuEesB,aAChBhD,EEvECyB,kBFuE2Be,EAAef,kBAC3CzB,EEvECwB,cFuEuB0B,cAInB,SAASjD,EAAQD,EAASQ,GAE/B,YAuCA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GArCvFG,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,IAETvB,EAAQqC,0BAA4BrC,EAAQyB,kBAAoBc,MAEhE,IAAIa,GAAW/B,OAAOgC,QAAU,SAAUC,GAAU,IAAK,GAAIC,GAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,GAAIG,GAASF,UAAUD,EAAI,KAAK,GAAII,KAAOD,GAAcrC,OAAOuC,UAAUC,eAAehD,KAAK6C,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,MAAOL,IG/HxPQ,EAAAtD,EAAA,GHmIKuD,EAAyB9C,EAAuB6C,GGlIrDE,EAAAxD,EAAA,IHsIKyD,EAAwBhD,EAAuB+C,GGrIpDE,EAAA1D,EAAA,IHyIK2D,EAAgBlD,EAAuBiD,GGxI5CE,EAAA5D,EAAA,IH4IK6D,EAAepD,EAAuBmD,GG1I3CjB,EAAA3C,EAAA,IAMAyC,EAAAzC,EAAA,IH0IK0C,EAAkBjC,EAAuBgC,GGzI9CF,EAAAvC,EAAA,IH6IKwC,EAAY/B,EAAuB8B,GG5IxCuB,EAAA9D,EAAA,IHgJK+D,EAAuBtD,EAAuBqD,GG9ItC7C,EAAAzB,EAAAyB,kBAAoB,SAAA+C,GAA8B,GAA3BC,GAA2BD,EAA3BC,SAAUC,EAAiBF,EAAjBE,WAGpCC,EAAaF,EAAbE,QAER,QACEC,KAAAzB,EAAAnB,iBACA6C,QAAAzB,KACKqB,EACAC,EAAWC,MAUdG,GALO9E,EAAAqC,0BAA4B,SAAAoC,GAAA,OACvCG,KAAAzB,EAAAnB,iBACA6C,QAASJ,IAGY,SAAAM,GAGjB,GAFJC,GAEID,EAFJC,SACAC,EACIF,EADJE,gBAEMC,EAAiBD,EAAAhB,aAAAF,YAIvB,QAAO,EAAAI,eAAY,EAAAE,cAAWa,KAC5BF,cHuJHhF,cGnJc,SAAAmF,GAQT,GAPJC,GAOID,EAPJC,OACAT,EAMIQ,EANJR,SACAU,EAKIF,EALJE,MAKIC,EAAAH,EAJJH,WAIIzC,SAAA+C,EAJO,GAIPA,EAAAC,EAAAJ,EAHJF,kBAGI1C,SAAAgD,GAHc,EAGdA,EAAAC,EAAAL,EAFJ3D,gBAEIe,SAAAiD,EAAAtC,aAAAsC,EADKC,EACLN,EADJO,QAEMA,EAAUD,GAAeX,GAC7BE,WAAUC,mBAGZ,OAAO,UAAAU,GAAA,MAAe,UAACC,EAASC,EAAcC,GAC5C,GAAMC,GAAkB,SAACC,EAAOC,GAC9B,GAAMC,GAAA9C,KAAmB4C,SAClBE,GAAaC,MAEpB,IAAMC,GAAWR,EAAQM,EAAcD,EAGvC,IAAII,MAAMC,QAAQF,GAAW,CAC3B,GAAMG,GAAYH,EAAS,GACrBI,EAAcJ,EAAS,EAC7B,QAAOhD,KAEAmD,GACHJ,QAAQ,EAAAnD,cAAcgD,EAAMG,OAAQF,KAEtCO,GAIJ,MAAApD,MACKwC,EAAQM,EAAcD,IACzBE,QAAQ,EAAAnD,cAAcgD,EAAMG,OAAQF,MAIlCQ,EAAQd,EACZI,EACApB,GAAYU,EAAZjC,KACKyC,GACHM,QAAQ,EAAA5B,eACNI,WAAUU,QAAOD,SAAQM,cAExBG,EACLC,GAGIpB,EAAalD,EAAc4D,EACjCM,GAAQgB,OAAO,SAAAjC,GACTA,GACFgC,EAAME,SAASlF,GACbgD,WAAUC,iBAKhB,IAAMiC,GAAW,SAAAV,GACf,OAAQA,EAAOrB,MACb,IAAAzB,GAAApB,KAEE,MADA2D,GAAQkB,KAAKX,EAAOpB,SACb,IACT,KAAA1B,GAAArB,QAEE,MADA4D,GAAQmB,QAAQZ,EAAOpB,SAChB,IACT,KAAA1B,GAAAtB,GAEE,MADA6D,GAAQoB,GAAGb,EAAOpB,SACX,IACT,KAAA1B,GAAAxB,QAEE,MADA+D,GAAQqB,SACD,IACT,KAAA5D,GAAAvB,WAEE,MADA8D,GAAQsB,YACD,IACT,SAIE,MAAOP,GAAME,SAASV,IAI5B,OAAA7C,MAAWqD,GAAOE,WAAUjB,UAAShB,mBHmJnC,SAASzE,EAAQD,EAASQ,GItRhC,YA4BA,SAAAyG,GAAA/F,GAAuC,GAAAA,KAAAC,WAA6B,MAAAD,EAAqB,IAAAgG,KAAiB,UAAAhG,EAAmB,OAAAyC,KAAAzC,GAAuBG,OAAAuC,UAAAC,eAAAhD,KAAAK,EAAAyC,KAAAuD,EAAAvD,GAAAzC,EAAAyC,GAAsG,OAAtBuD,cAAAhG,EAAsBgG,EAE1P,QAAAjG,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GA5B7EG,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAGA,IAAA6B,GAAA/B,OAAAgC,QAAA,SAAAC,GAAmD,OAAAC,GAAA,EAAgBA,EAAAC,UAAAC,OAAsBF,IAAA,CAAO,GAAAG,GAAAF,UAAAD,EAA2B,QAAAI,KAAAD,GAA0BrC,OAAAuC,UAAAC,eAAAhD,KAAA6C,EAAAC,KAAyDL,EAAAK,GAAAD,EAAAC,IAAiC,MAAAL,IAE/O6D,EAAA3G,EAAA,GAEA4G,EAAAnG,EAAAkG,GAEAE,EAAA7G,EAAA,GAEA8G,EAAA9G,EAAA,GAEA+G,EAAAN,EAAAK,GAEAE,EAAAhH,EAAA,IAEAiH,EAAAR,EAAAO,GAEAE,EAAAlH,EAAA,IAEAmH,EAAAnH,EAAA,IAEAoH,EAAA3G,EAAA0G,GAgBAE,EAAA,WACA,GAAAC,GAAAtE,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,MAAwEA,UAAA,EAExE6D,GAAAU,UAAA,UAAAX,eAAA,EAEA,IAAAY,GAAAF,EAAAG,gBAAA,EAAAP,EAAAQ,mBACAC,EAAAH,EAAAP,EAAAF,EAEAa,EAAAD,EAAAC,oBACAC,EAAAF,EAAAE,mBACAC,EAAAH,EAAAG,aACAC,EAAAJ,EAAAI,gBACAzB,EAAAqB,EAAArB,GAGApB,GAAA,EAAAkC,cAAAxE,GACAgF,uBAA8CN,GAC9CO,qBACAC,eACAC,kBACAzB,QAGA0B,EAAA,EACAC,EAAA,OAEAC,EAAA,SAAAC,EAAAC,GACA,MAAAJ,IAAAC,EAAAlB,EAAAmB,cAAAhD,EAAAmD,cAEA,IAAAC,GAAAF,EAAAlD,EAAAqD,aAAAJ,GAAAjD,EAAAgB,OAAAiC,EAEA,mBACAG,IAEA,MAAAN,GAAAC,MAIAM,EAAA,SAAAJ,GACA,MAAAD,GAAAC,GAAA,IAGAjC,EAAA,SAAAiC,GACA,MAAAD,GAAAC,GAAA,GAGA,OAAAvF,MAAoBsC,GACpBqD,eACArC,WAIA1G,cAAA6H,GJ4RM,SAAS5H,EAAQD,EAASQ,GKjXhC,YAaA,IAAAwI,GAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAArI,EAAAsI,EAAAC,EAAAC,GAOA,IAAAN,EAAA,CACA,GAAAO,EACA,IAAAjH,SAAA2G,EACAM,EAAA,GAAAC,OACA,qIAGK,CACL,GAAAC,IAAAP,EAAAC,EAAArI,EAAAsI,EAAAC,EAAAC,GACAI,EAAA,CACAH,GAAA,GAAAC,OACAP,EAAArC,QAAA,iBAA0C,MAAA6C,GAAAC,QAE1CH,EAAAI,KAAA,sBAIA,KADAJ,GAAAK,YAAA,EACAL,GAIAvJ,GAAAD,QAAAgJ,GLiYM,SAAS/I,EAAQD,GMnbvB,YAEAqB,QAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAEAvB,GAAA+H,YAAA,mBAAA+B,iBAAAC,WAAAD,OAAAC,SAAAC,gBNybM,SAAS/J,EAAQD,EAASQ,GO9bhC,YAEAa,QAAAC,eAAAtB,EAAA,cACAuB,OAAA,IAEAvB,EAAA8G,GAAA9G,EAAAuI,gBAAAvI,EAAAsI,aAAAtI,EAAA0I,cAAA1I,EAAAoI,oBAAApI,EAAAqI,mBAAA9F,MAEA,IAAA0H,GAAAzJ,EAAA,GAEAkH,EAAAlH,EAAA,IAEA0J,EAAA1J,EAAA,IAEA2J,EAAA3J,EAAA,GAKA4J,EAAA,WAEAC,EAAA,SAAAC,GACA,GAAA3G,GAAA2G,KAAA3G,GAEA,UAAAsG,EAAAM,iBACA5F,SAAAmF,OAAArF,SAAAE,SACA6F,OAAAV,OAAArF,SAAA+F,OACAC,KAAAX,OAAArF,SAAAgG,KACAzE,MAAArC,GAAA,EAAAuG,EAAAQ,WAAA/G,GAAApB,QACGA,OAAAoB,IAiCHgH,GA9BA3K,EAAAqI,mBAAA,WACA,GAAAiC,GAAA,MACA,KACAA,EAAAR,OAAApE,QAAAM,UACG,MAAAwD,GAGHc,KAGA,MAAAD,GAAAC,IAGAtK,EAAAoI,oBAAA,SAAAwC,EAAAC,GACA,MAAAA,GAAAf,OAAAgB,QAAAF,KAGA5K,EAAA0I,cAAA,SAAAC,GACA,GAAAoC,GAAA,SAAAC,GACAzI,SAAAyI,EAAAhF,OACA2C,EAAA0B,EAAAW,EAAAhF,QAKA,QAFA,EAAA0B,EAAAuD,kBAAAnB,OAAAM,EAAAW,GAEA,WACA,SAAArD,EAAAwD,qBAAApB,OAAAM,EAAAW,KAIA,SAAAtG,EAAA0G,GACA,GAAAnF,GAAAvB,EAAAuB,MACArC,EAAAc,EAAAd,GAGApB,UAAAyD,IAAA,EAAAkE,EAAAkB,WAAAzH,EAAAqC,GAEAmF,GAAexH,QAAW,EAAAwG,EAAAkB,YAAA5G,KAG1BzE,GAAAsI,aAAA,SAAA7D,GACA,MAAAkG,GAAAlG,EAAA,SAAAuB,EAAAsF,GACA,MAAAxB,QAAApE,QAAA6F,UAAAvF,EAAA,KAAAsF,MAIAtL,EAAAuI,gBAAA,SAAA9D,GACA,MAAAkG,GAAAlG,EAAA,SAAAuB,EAAAsF,GACA,MAAAxB,QAAApE,QAAA8F,aAAAxF,EAAA,KAAAsF,MAIAtL,EAAA8G,GAAA,SAAA2E,GACAA,GAAA3B,OAAApE,QAAAoB,GAAA2E,KPqcM,SAASxL,EAAQD,EAASQ,GQzhBhC,YAmBA,SAAAS,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAjB7EG,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,IAEAvB,EAAA0L,kBAAA1L,EAAA2L,eAAA3L,EAAAuK,eAAAvK,EAAA4L,YAAArJ,MAEA,IAAAsJ,GAAA,kBAAAC,SAAA,gBAAAA,QAAAC,SAAA,SAAA7K,GAAoG,aAAAA,IAAqB,SAAAA,GAAmB,MAAAA,IAAA,kBAAA4K,SAAA5K,EAAA8K,cAAAF,OAAA,eAAA5K,IAE5IkC,EAAA/B,OAAAgC,QAAA,SAAAC,GAAmD,OAAAC,GAAA,EAAgBA,EAAAC,UAAAC,OAAsBF,IAAA,CAAO,GAAAG,GAAAF,UAAAD,EAA2B,QAAAI,KAAAD,GAA0BrC,OAAAuC,UAAAC,eAAAhD,KAAA6C,EAAAC,KAAyDL,EAAAK,GAAAD,EAAAC,IAAiC,MAAAL,IAE/O6D,EAAA3G,EAAA,GAEA4G,EAAAnG,EAAAkG,GAEAgD,EAAA3J,EAAA,GAEAyL,EAAAzL,EAAA,GA8BA0L,GA1BAlM,EAAA4L,YAAA,SAAAO,GACA,MAAA/I,GAAA/B,OAAA+K,OAAA,MAAAD,IAGAnM,EAAAuK,eAAA,WACA,GAAA8B,GAAA7I,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,OAAAA,UAAA,GACAyC,EAAAzC,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,GAAAyI,EAAAK,IAAA9I,UAAA,GACAG,EAAAH,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,QAAAA,UAAA,GAEA+I,EAAA,gBAAAF,IAAA,EAAAlC,EAAAqC,WAAAH,KAEA1H,EAAA4H,EAAA5H,UAAA,IACA6F,EAAA+B,EAAA/B,QAAA,GACAC,EAAA8B,EAAA9B,MAAA,GACAzE,EAAAuG,EAAAvG,KAEA,QACArB,WACA6F,SACAC,OACAzE,QACAC,SACAtC,QAIA,SAAA4I,GACA,wBAAAlL,OAAAuC,UAAA6I,SAAA5L,KAAA0L,KAGAZ,EAAA3L,EAAA2L,eAAA,QAAAA,GAAAxC,EAAAC,GACA,GAAAD,IAAAC,EAAA,QAEA,IAAAsD,GAAA,mBAAAvD,GAAA,YAAA0C,EAAA1C,GACAwD,EAAA,mBAAAvD,GAAA,YAAAyC,EAAAzC,EAEA,OAAAsD,KAAAC,GAAA,GAEA,aAAAD,GAAA,EAAAtF,eAAA,UAGA,WAAAsF,GACAR,EAAA/C,IAAA+C,EAAA9C,IAAA,EAAAhC,eAAA,UAEAf,MAAAC,QAAA6C,GAIA9C,MAAAC,QAAA8C,IAAAD,EAAA1F,SAAA2F,EAAA3F,QAAA0F,EAAAyD,MAAA,SAAAC,EAAAC,GACA,MAAAnB,GAAAkB,EAAAzD,EAAA0D,MALAzL,OAAA0L,KAAA5D,GAAAyD,MAAA,SAAAjJ,GACA,MAAAgI,GAAAxC,EAAAxF,GAAAyF,EAAAzF,QAUA,GAGA3D,GAAA0L,kBAAA,SAAAvC,EAAAC,GACA,MAAAD,GAAAxF,MAAAyF,EAAAzF,KAEAwF,EAAAxE,WAAAyE,EAAAzE,UAAAwE,EAAAqB,SAAApB,EAAAoB,QAAArB,EAAAsB,OAAArB,EAAAqB,MAAAkB,EAAAxC,EAAAnD,MAAAoD,EAAApD,SRgiBM,SAAS/F,EAAQD,EAASQ,GSlnBhC,YAWA,SAAAS,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAT7EG,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,IAEAvB,EAAAqL,WAAArL,EAAAwM,UAAAxM,EAAAgN,4BAAAhN,EAAAiN,8BAAAjN,EAAAkN,0BAAAlN,EAAAmN,eAAA5K,MAEA,IAAA6K,GAAA5M,EAAA,GAmDA6M,GAjDApM,EAAAmM,GAIApN,EAAAmN,eAAA,SAAA7B,GACA,sBAAAA,IAAA,MAAAA,EAAAgC,OAAA,IAGAtN,EAAAkN,0BAAA,SAAA5B,EAAA3H,EAAApC,GACA,GAAAgM,GAAAf,EAAAlB,GAEA3G,EAAA4I,EAAA5I,SACA6F,EAAA+C,EAAA/C,OACAC,EAAA8C,EAAA9C,IAGA,OAAAY,IACA1G,WACA6F,UAAA,KAAAA,EAAAgD,QAAA,cAAA7J,EAAA,IAAApC,EACAkJ,UAIAzK,EAAAiN,8BAAA,SAAA3B,EAAA3H,GACA,GAAA8J,GAAAjB,EAAAlB,GAEA3G,EAAA8I,EAAA9I,SACA6F,EAAAiD,EAAAjD,OACAC,EAAAgD,EAAAhD,IAGA,OAAAY,IACA1G,WACA6F,SAAA3D,QAAA,GAAA6G,QAAA,SAAA/J,EAAA,8BAAAgK,EAAAC,EAAAC,GACA,YAAAD,IAAAC,IAEApD,UAIAzK,EAAAgN,4BAAA,SAAA1B,EAAA3H,GACA,GAAAmK,GAAAtB,EAAAlB,GAEAd,EAAAsD,EAAAtD,OAEAmD,EAAAnD,EAAAmD,MAAA,GAAAD,QAAA,OAAA/J,EAAA,mBACA,OAAAgK,MAAA,IAGA,SAAAI,GACA,GAAAJ,GAAAI,EAAAJ,MAAA,wBACA,cAAAA,EAAAI,IAAAC,UAAAL,EAAA,GAAAlK,UAGA+I,EAAAxM,EAAAwM,UAAA,SAAAlB,GACA,GAAA3G,GAAA0I,EAAA/B,GACAd,EAAA,GACAC,EAAA,GAIAwD,EAAAtJ,EAAA6I,QAAA,IACA,MAAAS,IACAxD,EAAA9F,EAAAqJ,UAAAC,GACAtJ,IAAAqJ,UAAA,EAAAC,GAGA,IAAAC,GAAAvJ,EAAA6I,QAAA,IAQA,OAPA,KAAAU,IACA1D,EAAA7F,EAAAqJ,UAAAE,GACAvJ,IAAAqJ,UAAA,EAAAE,IAGA,KAAAvJ,MAAA,MAGAA,WACA6F,SACAC,SAIAY,EAAArL,EAAAqL,WAAA,SAAA5G,GACA,SAAAA,GAAA,gBAAAA,GAAA,MAAAA,EAEA,IAAAO,GAAAP,EAAAO,SACAL,EAAAF,EAAAE,SACA6F,EAAA/F,EAAA+F,OACAC,EAAAhG,EAAAgG,KAEAa,GAAAtG,GAAA,IAAAL,CAMA,OAJA6F,IAAA,MAAAA,IAAAc,GAAAd,GAEAC,IAAAa,GAAAb,GAEAa,ITynBM,SAASrL,EAAQD,EAASQ,GUztBhC,YASA,IAAA2N,GAAA,YAyCAlO,GAAAD,QAAAmO,GVyuBM,SAASlO,EAAQD,GWpyBvB,YAEAqB,QAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAKAvB,GAAA+B,KAAA,OAKA/B,EAAA8B,QAAA,UAUA9B,EAAAsM,IAAA,OX0yBM,SAASrM,EAAQD,GYj0BvB,YAEAqB,QAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAEAvB,GAAAiL,iBAAA,SAAAmD,EAAApD,EAAArC,GACA,MAAAyF,GAAAnD,iBAAAmD,EAAAnD,iBAAAD,EAAArC,GAAA,GAAAyF,EAAAC,YAAA,KAAArD,EAAArC,IAGA3I,EAAAkL,oBAAA,SAAAkD,EAAApD,EAAArC,GACA,MAAAyF,GAAAlD,oBAAAkD,EAAAlD,oBAAAF,EAAArC,GAAA,GAAAyF,EAAAE,YAAA,KAAAtD,EAAArC,IAUA3I,EAAAkI,gBAAA,WACA,GAAAqG,GAAAzE,OAAA0E,UAAAC,SAEA,YAAAF,EAAAf,QAAA,oBAAAe,EAAAf,QAAA,qBAAAe,EAAAf,QAAA,uBAAAe,EAAAf,QAAA,gBAAAe,EAAAf,QAAA,iBAEA1D,OAAApE,SAAA,aAAAoE,QAAApE,SAFA,GAQA1F,EAAA0O,iCAAA,WACA,WAAA5E,OAAA0E,UAAAC,UAAAjB,QAAA,aZw0BM,SAASvN,EAAQD,EAASQ,Gax2BhC,YAWA,SAAAS,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAT7EG,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,IAEAvB,EAAA0K,UAAA1K,EAAAoL,UAAA7I,MAEA,IAAA6K,GAAA5M,EAAA,GAMAmO,GAJA1N,EAAAmM,IAIA,4CAGAwB,EAAA,gBACAC,EAAA,aAEAC,EAAA,SAAAnL,GACA,MAAAkL,GAAAlL,EAGA3D,GAAAoL,UAAA,SAAAzH,EAAAqC,GACA,GAAA8D,OAAAiF,eAOA,IACA,MAAA/I,EACA8D,OAAAiF,eAAAC,WAAAF,EAAAnL,IAEAmG,OAAAiF,eAAAE,QAAAH,EAAAnL,GAAAuL,KAAAC,UAAAnJ,IAEG,MAAAwD,GACH,GAAAA,EAAAI,OAAAgF,EAKA,MAGA,IAAAD,EAAAnB,QAAAhE,EAAAI,OAAA,OAAAE,OAAAiF,eAAAtL,OAIA,MAGA,MAAA+F,KAIAxJ,EAAA0K,UAAA,SAAA/G,GACA,GAAAyL,GAAA,MACA,KACAA,EAAAtF,OAAAiF,eAAAM,QAAAP,EAAAnL,IACG,MAAA6F,GACH,GAAAA,EAAAI,OAAAgF,EAKA,OAIA,GAAAQ,EACA,IACA,MAAAF,MAAAI,MAAAF,GACK,MAAA5F,Obo3BC,SAASvJ,EAAQD,EAASQ,Gc97BhC,YAEAa,QAAAC,eAAAtB,EAAA,cACAuB,OAAA,IAEAvB,EAAAuI,gBAAAvI,EAAAsI,aAAAtI,EAAAqI,mBAAArI,EAAA8G,GAAA9G,EAAAoI,oBAAA7F,MAEA,IAAA+E,GAAA9G,EAAA,EAEAa,QAAAC,eAAAtB,EAAA,uBACAuP,YAAA,EACAC,IAAA,WACA,MAAAlI,GAAAc,uBAGA/G,OAAAC,eAAAtB,EAAA,MACAuP,YAAA,EACAC,IAAA,WACA,MAAAlI,GAAAR,KAIA,IAAAmD,GAAAzJ,EAAA,GAEA2J,EAAA3J,EAAA,EAEAR,GAAAqI,mBAAA,WACA,SAAA4B,EAAAM,gBAAAT,OAAArF,WAGAzE,EAAAsI,aAAA,SAAA7D,GAEA,MADAqF,QAAArF,SAAAgL,MAAA,EAAAtF,EAAAkB,YAAA5G,IACA,GAGAzE,EAAAuI,gBAAA,SAAA9D,GAEA,MADAqF,QAAArF,SAAAoC,SAAA,EAAAsD,EAAAkB,YAAA5G,KACA,Idq8BM,SAASxE,EAAQD,EAASQ,Ge1+BhC,YAkBA,SAAAS,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAE7E,QAAAwO,GAAAC,GAAkC,GAAAtJ,MAAAC,QAAAqJ,GAAA,CAA0B,OAAApM,GAAA,EAAAqM,EAAAvJ,MAAAsJ,EAAAlM,QAA0CF,EAAAoM,EAAAlM,OAAgBF,IAAOqM,EAAArM,GAAAoM,EAAApM,EAAoB,OAAAqM,GAAsB,MAAAvJ,OAAAwJ,KAAAF,GAlBvKtO,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAGA,IAAAuO,GAAAtP,EAAA,IAEA2J,EAAA3J,EAAA,GAEAuP,EAAAvP,EAAA,IAEAwP,EAAA/O,EAAA8O,GAEA9D,EAAAzL,EAAA,GAEAyJ,EAAAzJ,EAAA,GAMAyP,EAAA,WACA,GAAAnI,GAAAtE,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,MAAwEA,UAAA,GACxE6E,EAAAP,EAAAO,mBACAD,EAAAN,EAAAM,oBACAE,EAAAR,EAAAQ,aACAC,EAAAT,EAAAS,gBACAzB,EAAAgB,EAAAhB,GACAoJ,EAAApI,EAAAoI,UAGAC,EAAA,OACAC,EAAA,OACAC,KACAC,KACAC,KAEAC,EAAA,WACA,MAAAJ,MAAAnK,SAAAgG,EAAAK,IAAAiE,EAAA/C,QAAA4C,EAAAzM,KAEAwM,EAAAI,EAAA/C,QAAA2C,EAAAxM,KAEA,IAGAgH,EAAA,SAAA8F,GACAN,EAAAM,CAEA,IAAAC,GAAAF,GAEAL,GAAAlK,SAAAgG,EAAAlK,KACAwO,KAAAI,OAAAjB,EAAAa,EAAAK,MAAA,EAAAF,EAAA,KAAAP,EAAAxM,MACKwM,EAAAlK,SAAAgG,EAAAnK,UACLyO,EAAAG,GAAAP,EAAAxM,KAGA2M,EAAAO,QAAA,SAAAlI,GACA,MAAAA,GAAAwH,MAIApH,EAAA,SAAAJ,GAGA,MAFA0H,GAAAzJ,KAAA+B,GAEA,WACA,MAAA0H,KAAAS,OAAA,SAAAjE,GACA,MAAAA,KAAAlE,MAKAjC,EAAA,SAAAiC,GAGA,MAFA2H,GAAA1J,KAAA+B,GAEA,WACA,MAAA2H,KAAAQ,OAAA,SAAAjE,GACA,MAAAA,KAAAlE,MAKAoI,EAAA,SAAAtM,EAAAoG,IACA,EAAAiF,EAAAkB,WAAAX,EAAA5M,OAAA,SAAAqJ,EAAAmE,EAAAC,IACA,EAAAlB,cAAAK,EAAAvD,GAAArI,EAAA,SAAA0M,GACA,aAAAA,EAAAD,EAAAC,GAAAF,OAEK,SAAArG,GACLxC,GAAA,gBAAAwC,GACAxC,EAAAwC,EAAA,SAAAwG,GACA,MAAAvG,GAAAuG,KAAA,KAGAvG,EAAAD,KAAA,MAKA/B,EAAA,SAAA4H,GACAN,IAAA,EAAAlG,EAAAyB,mBAAAyE,EAAAM,IAAAL,IAAA,EAAAnG,EAAAyB,mBAAA0E,EAAAK,KAEAL,EAAAK,EAEAM,EAAAN,EAAA,SAAAW,GACA,GAAAhB,IAAAK,EAIA,GAFAL,EAAA,KAEAgB,EAAA,CAEA,GAAAX,EAAAxK,SAAAgG,EAAAlK,KAAA,CACA,GAAAsP,IAAA,EAAAlH,EAAAkB,YAAA8E,GACAmB,GAAA,EAAAnH,EAAAkB,YAAAoF,EAEAa,KAAAD,IAAA,EAAApH,EAAA0B,gBAAAwE,EAAAnK,MAAAyK,EAAAzK,SAAAyK,EAAAxK,OAAAgG,EAAAnK,SAGA2O,EAAAxK,SAAAgG,EAAAK,IACA3B,EAAA8F,GACSA,EAAAxK,SAAAgG,EAAAlK,KACTuG,EAAAmI,MAAA,GAAA9F,EAAA8F,GACSA,EAAAxK,SAAAgG,EAAAnK,SACTyG,EAAAkI,MAAA,GAAA9F,EAAA8F,OAEO,IAAAN,GAAAM,EAAAxK,SAAAgG,EAAAK,IAAA,CACP,GAAAiF,GAAAhB,EAAA/C,QAAA2C,EAAAxM,KACA6N,EAAAjB,EAAA/C,QAAAiD,EAAA9M,IAEA,MAAA4N,GAAA,KAAAC,GAAA1K,EAAAyK,EAAAC,QAKA5K,EAAA,SAAAyF,GACA,MAAAxD,GAAA0B,EAAA8B,EAAAJ,EAAAlK,QAGA8E,EAAA,SAAAwF,GACA,MAAAxD,GAAA0B,EAAA8B,EAAAJ,EAAAnK,WAGAiF,EAAA,WACA,MAAAD,GAAA,KAGAE,EAAA,WACA,MAAAF,GAAA,IAGAgI,EAAA,WACA,MAAA2C,MAAAC,SAAAjF,SAAA,IAAAkF,OAAA,EAAAzB,GAAA,IAGA0B,EAAA,SAAAnN,GACA,SAAA0F,EAAAkB,YAAA5G,IAGA8F,EAAA,SAAA9F,EAAAwB,GACA,GAAAtC,GAAAH,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,GAAAsL,IAAAtL,UAAA,EACA,UAAAyG,EAAAM,gBAAA9F,EAAAwB,EAAAtC,GAGA,QACA0E,qBACAU,eACArC,SACAmC,eACAjC,OACAC,UACAC,KACAC,SACAC,YACA8H,YACAzD,WAAAlB,EAAAkB,WACAuG,aACArH,kBAIAvK,cAAAiQ,Gfg/BM,SAAShQ,EAAQD,GgBnqCvB,YAMA,SAAA0P,GAAAC,GAAkC,GAAAtJ,MAAAC,QAAAqJ,GAAA,CAA0B,OAAApM,GAAA,EAAAqM,EAAAvJ,MAAAsJ,EAAAlM,QAA0CF,EAAAoM,EAAAlM,OAAgBF,IAAOqM,EAAArM,GAAAoM,EAAApM,EAAoB,OAAAqM,GAAsB,MAAAvJ,OAAAwJ,KAAAF,GAJvKtO,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAKAvB,GAAAgR,UAAA,SAAAa,EAAAC,EAAAjH,GACA,GAAAkH,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,EAAA,OAEAjB,EAAA,WACA,OAAAkB,GAAA5O,UAAAC,OAAAiG,EAAArD,MAAA+L,GAAAC,EAAA,EAAmED,EAAAC,EAAaA,IAChF3I,EAAA2I,GAAA7O,UAAA6O,EAKA,OAFAL,IAAA,EAEAC,OAEAE,EAAAzI,OAIAmB,GAAAyH,MAAA/P,OAAAmH,IAGAuH,EAAA,QAAAA,KACA,IAAAe,IAEAE,GAAA,GAEAD,GAAA,CAIA,IAFAA,GAAA,GAEAD,GAAAH,EAAAE,GAAAG,GACAA,GAAA,EACAJ,EAAAC,IAAAd,EAAAC,EAKA,OAFAe,IAAA,EAEAD,MAEAnH,GAAAyH,MAAA/P,OAAAmN,EAAAyC,SAIAJ,GAAAF,GAAAK,IACAF,GAAA,EACAnH,OAIAoG,OhB0qCM,SAAShR,EAAQD,EAASQ,GiBruChC,YAUA,SAAAS,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAR7EG,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAGA,IAAA6L,GAAA5M,EAAA,GAMA+R,GAJAtR,EAAAmM,GAIA,SAAAoF,EAAA/N,EAAAoG,GACA,GAAAsG,GAAAqB,EAAA/N,EAAAoG,EAEA2H,GAAA/O,OAAA,GAGAoH,EAAAsG,IAMAnR,cAAAuS,GjB2uCM,SAAStS,EAAQD,EAASQ,GkBnwChC,YA0BA,SAAAS,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAxB7EG,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAGA,IAAA6B,GAAA/B,OAAAgC,QAAA,SAAAC,GAAmD,OAAAC,GAAA,EAAgBA,EAAAC,UAAAC,OAAsBF,IAAA,CAAO,GAAAG,GAAAF,UAAAD,EAA2B,QAAAI,KAAAD,GAA0BrC,OAAAuC,UAAAC,eAAAhD,KAAA6C,EAAAC,KAAyDL,EAAAK,GAAAD,EAAAC,IAAiC,MAAAL,IAE/O8J,EAAA5M,EAAA,GAIA2G,GAFAlG,EAAAmM,GAEA5M,EAAA,IAEA4G,EAAAnG,EAAAkG,GAEA8C,EAAAzJ,EAAA,GAEA2J,EAAA3J,EAAA,GAEAmH,EAAAnH,EAAA,IAEAoH,EAAA3G,EAAA0G,GAEAsE,EAAAzL,EAAA,GAIAiS,EAAA,SAAAC,GACA,MAAAA,GAAA5B,OAAA,SAAA6B,GACA,MAAAA,GAAA3M,QACG4M,OAAA,SAAAC,EAAAF,GAEH,MADAE,GAAAF,EAAAhP,KAAAgP,EAAA3M,MACA6M,QAIAC,EAAA,WACA,GAAAhL,GAAAtE,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,MAAwEA,UAAA,EAExE6C,OAAAC,QAAAwB,GACAA,GAAe4K,QAAA5K,GACZ,gBAAAA,KACHA,GAAe4K,SAAA5K,IAGf,IAAAO,GAAA,WACA,GAAAsK,GAAAD,EAAAK,GACAzH,GAAA,EAAAnB,EAAAkB,YAAAsH,GAEAhP,EAAA,OACAqC,EAAA,MACA2M,GAAAhP,MACAA,EAAAgP,EAAAhP,IACAqC,EAAA0E,EAAA/G,GAGA,IAAAqP,IAAA,EAAA7I,EAAAqC,WAAAlB,EAEA,UAAArB,EAAAM,gBAAAnH,KAAyD4P,GAAShN,UAAezD,OAAAoB,IAGjFsP,EAAA,SAAAxH,GACA,GAAAqB,GAAAiG,EAAAtH,CACA,OAAAqB,IAAA,GAAAA,EAAA4F,EAAAjP,QAGAqD,EAAA,SAAA2E,GACA,GAAAA,GAEAwH,EAAAxH,GAAA,CAMAsH,GAAAtH,CACA,IAAA0E,GAAA9H,GAGA3C,GAAAmD,aAAAzF,KAAoC+M,GAAoBlK,OAAAgG,EAAAK,SAGxDhE,EAAA,SAAA7D,GACAsO,GAAA,EAEAA,EAAAL,EAAAjP,QAAAiP,EAAAQ,OAAAH,GAEAL,EAAA9L,KAAAnC,GAEA2G,EAAA3G,EAAAd,IAAAc,EAAAuB,QAGAuC,EAAA,SAAA9D,GACAiO,EAAAK,GAAAtO,EACA2G,EAAA3G,EAAAd,IAAAc,EAAAuB,QAGAN,GAAA,EAAAkC,cAAAxE,KAAwD0E,GACxDO,qBACAC,eACAC,kBACAzB,QAGAqM,EAAArL,EACA4K,EAAAS,EAAAT,QACAK,EAAAI,EAAAJ,OAGA,iBAAAL,GACAA,MACGrM,MAAAC,QAAAoM,KACHA,GAAA,MAGAA,IAAAU,IAAA,SAAAT,GACA,SAAA1I,EAAAM,gBAAAoI,KAGA,MAAAI,EACAA,EAAAL,EAAAjP,OAAA,EAEAsP,GAAA,GAAAA,EAAAL,EAAAjP,OAAA,UAAA2D,eAAA,EAGA,IAAAiM,GAAAZ,EAAAC,GAEAtH,EAAA,SAAAzH,EAAAqC,GACA,MAAAqN,GAAA1P,GAAAqC,GAGA0E,EAAA,SAAA/G,GACA,MAAA0P,GAAA1P,GAGA,OAAA+B,GAGA1F,cAAA8S,GlBywCM,SAAS7S,EAAQD,EAASQ,GmBp5ChC,YAcA,SAAAS,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAZ7EG,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAGA,IAAA6B,GAAA/B,OAAAgC,QAAA,SAAAC,GAAmD,OAAAC,GAAA,EAAgBA,EAAAC,UAAAC,OAAsBF,IAAA,CAAO,GAAAG,GAAAF,UAAAD,EAA2B,QAAAI,KAAAD,GAA0BrC,OAAAuC,UAAAC,eAAAhD,KAAA6C,EAAAC,KAAyDL,EAAAK,GAAAD,EAAAC,IAAiC,MAAAL,IAE/OyM,EAAAvP,EAAA,IAEAwP,EAAA/O,EAAA8O,GAEA5F,EAAA3J,EAAA,GAIA8S,EAAA,SAAArD,GACA,kBACA,GAAAnI,GAAAtE,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,MAA0EA,UAAA,GAE1EkC,EAAAuK,EAAAnI,GACA9C,EAAA8C,EAAA9C,SAGAuO,EAAA,SAAA9O,GACA,MAAAA,IAEAO,GAAA,MAAAP,EAAAO,WACA,IAAAP,EAAAE,SAAA6I,QAAAxI,IACAP,EAAAE,SAAAF,EAAAE,SAAAqJ,UAAAhJ,EAAAvB,QACAgB,EAAAO,WAEA,KAAAP,EAAAE,WAAAF,EAAAE,SAAA,MAEAF,EAAAO,SAAA,IAIAP,GAbAA,GAgBA+O,EAAA,SAAA/O,GACA,IAAAO,EAAA,MAAAP,EAEA,IAAA8H,GAAA,gBAAA9H,IAAA,EAAA0F,EAAAqC,WAAA/H,KACAgP,EAAAlH,EAAA5H,SACA+O,EAAA,MAAA1O,EAAA4L,MAAA,IAAA5L,IAAA,IACA2O,EAAA,MAAAF,EAAAnG,OAAA,GAAAmG,EAAA7C,MAAA,GAAA6C,EACA9O,EAAA+O,EAAAC,CAEA,OAAAvQ,MAAwBqB,GACxBE,cAKA0D,EAAA,WACA,MAAAkL,GAAA7N,EAAA2C,uBAGAU,EAAA,SAAAyJ,GACA,MAAA9M,GAAAqD,aAAA,SAAAtE,EAAAoG,GACA,SAAAmF,cAAAwC,EAAAe,EAAA9O,GAAAoG,MAIAnE,EAAA,SAAAiC,GACA,MAAAjD,GAAAgB,OAAA,SAAAjC,GACA,MAAAkE,GAAA4K,EAAA9O,OAKAmC,EAAA,SAAAnC,GACA,MAAAiB,GAAAkB,KAAA4M,EAAA/O,KAGAoC,EAAA,SAAApC,GACA,MAAAiB,GAAAmB,QAAA2M,EAAA/O,KAGA4G,EAAA,SAAA5G,GACA,MAAAiB,GAAA2F,WAAAmI,EAAA/O,KAGAmN,EAAA,SAAAnN,GACA,MAAAiB,GAAAkM,WAAA4B,EAAA/O,KAGA8F,EAAA,SAAA9F,GACA,OAAA2N,GAAA5O,UAAAC,OAAAiG,EAAArD,MAAA+L,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAwFD,EAAAC,EAAaA,IACrG3I,EAAA2I,EAAA,GAAA7O,UAAA6O,EAGA,OAAAkB,GAAA7N,EAAA6E,eAAA+H,MAAA5M,GAAA8N,EAAA/O,IAAAkM,OAAAjH,KAGA,OAAAtG,MAAsBsC,GACtB2C,qBACAU,eACArC,SACAE,OACAC,UACAwE,aACAuG,aACArH,oBAKAvK,cAAAsT,GnB05CM,SAASrT,EAAQD,EAASQ,GoBxgDhC,YAkBA,SAAAS,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAhB7EG,OAAAC,eAAAtB,EAAA,cACAuB,OAAA,GAGA,IAAA6B,GAAA/B,OAAAgC,QAAA,SAAAC,GAAmD,OAAAC,GAAA,EAAgBA,EAAAC,UAAAC,OAAsBF,IAAA,CAAO,GAAAG,GAAAF,UAAAD,EAA2B,QAAAI,KAAAD,GAA0BrC,OAAAuC,UAAAC,eAAAhD,KAAA6C,EAAAC,KAAyDL,EAAAK,GAAAD,EAAAC,IAAiC,MAAAL,IAE/OsQ,EAAApT,EAAA,IAEAuP,EAAAvP,EAAA,IAEAwP,EAAA/O,EAAA8O,GAEA9F,EAAAzJ,EAAA,GAEA2J,EAAA3J,EAAA,GAIAqT,EAAA,SAAAxO,GACA,SAAAuO,EAAAzE,WAAA9J,GAAAwB,QAAA,aAGAiN,EAAAF,EAAAtE,MAMAyE,EAAA,SAAA9D,GACA,kBACA,GAAAnI,GAAAtE,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,MAA0EA,UAAA,GAE1EkC,EAAAuK,EAAAnI,GACAkM,EAAAlM,EAAAkM,eACAC,EAAAnM,EAAAmM,gBAGA,mBAAAD,OAAAH,GAEA,kBAAAI,OAAAH,EAEA,IAAAI,GAAA,SAAAzP,GACA,MAAAA,IAEA,MAAAA,EAAAY,QAAAZ,EAAAY,MAAA4O,EAAAxP,EAAA+F,OAAAwD,UAAA,KAEAvJ,GAJAA,GAOA0P,EAAA,SAAA1P,EAAAY,GACA,SAAAA,EAAA,MAAAZ,EAEA,IAAA8H,GAAA,gBAAA9H,IAAA,EAAA0F,EAAAqC,WAAA/H,KACA2P,EAAAJ,EAAA3O,GACAmF,EAAA4J,EAAA,IAAAA,EAAA,EAEA,OAAAhR,MAAwBmJ,GACxB/B,YAKAnC,EAAA,WACA,MAAA6L,GAAAxO,EAAA2C,uBAGAU,EAAA,SAAAyJ,GACA,MAAA9M,GAAAqD,aAAA,SAAAtE,EAAAoG,GACA,SAAAmF,cAAAwC,EAAA0B,EAAAzP,GAAAoG,MAIAnE,EAAA,SAAAiC,GACA,MAAAjD,GAAAgB,OAAA,SAAAjC,GACA,MAAAkE,GAAAuL,EAAAzP,OAKAmC,EAAA,SAAAnC,GACA,MAAAiB,GAAAkB,KAAAuN,EAAA1P,IAAAY,SAGAwB,EAAA,SAAApC,GACA,MAAAiB,GAAAmB,QAAAsN,EAAA1P,IAAAY,SAGAgG,EAAA,SAAA5G,GACA,MAAAiB,GAAA2F,WAAA8I,EAAA1P,IAAAY,SAGAuM,EAAA,SAAAnN,GACA,MAAAiB,GAAAkM,WAAAuC,EAAA1P,IAAAY,SAGAkF,EAAA,SAAA9F,GACA,OAAA2N,GAAA5O,UAAAC,OAAAiG,EAAArD,MAAA+L,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAwFD,EAAAC,EAAaA,IACrG3I,EAAA2I,EAAA,GAAA7O,UAAA6O,EAGA,IAAAgC,GAAA3O,EAAA6E,eAAA+H,MAAA5M,GAAAyO,EAAA1P,IAAAY,QAAAsL,OAAAjH,GAIA,OAFAjF,GAAAY,QAAAgP,EAAAhP,OAAA,EAAA4E,EAAA2B,aAAAnH,EAAAY,QAEA6O,EAAAG,GAGA,OAAAjR,MAAsBsC,GACtB2C,qBACAU,eACArC,SACAE,OACAC,UACAwE,aACAuG,aACArH,oBAKAvK,cAAA+T,GpB8gDM,SAAS9T,EAAQD,EAASQ,GqBxoDhC,YAIA,SAAA8T,GAAA/S,EAAAgT,GACA,MAAAA,GAAAD,OACAC,EAAAC,OAAAC,EAAAlT,GAAAmT,mBAAAnT,GAGAA,EARA,GAAAkT,GAAAjU,EAAA,IACAmU,EAAAnU,EAAA,GAUAR,GAAA4U,QAAA,SAAAC,GACA,MAAAA,GAAAC,MAAA,aAGA9U,EAAAsP,MAAA,SAAAuF,GAGA,GAAAE,GAAA1T,OAAA+K,OAAA,KAEA,uBAAAyI,GACAE,GAGAF,IAAAG,OAAAnO,QAAA,kBAMAgO,EAAAC,MAAA,KAAAjE,QAAA,SAAAoE,GACA,GAAAC,GAAAD,EAAApO,QAAA,WAAAiO,MAAA,KAGAnR,EAAAuR,EAAAC,QACAC,EAAAF,EAAAzR,OAAA,EAAAyR,EAAAG,KAAA,KAAA9S,MAEAoB,GAAA2R,mBAAA3R,GAIAyR,EAAA7S,SAAA6S,EAAA,KAAAE,mBAAAF,GAEA7S,SAAAwS,EAAApR,GACAoR,EAAApR,GAAAyR,EACG/O,MAAAC,QAAAyO,EAAApR,IACHoR,EAAApR,GAAAiD,KAAAwO,GAEAL,EAAApR,IAAAoR,EAAApR,GAAAyR,KAIAL,GAzBAA,GA4BA/U,EAAAmP,UAAA,SAAAjO,EAAAqT,GACA,GAAAgB,IACAjB,QAAA,EACAE,QAAA,EAKA,OAFAD,GAAAI,EAAAY,EAAAhB,GAEArT,EAAAG,OAAA0L,KAAA7L,GAAAsU,OAAApC,IAAA,SAAAzP,GACA,GAAAyR,GAAAlU,EAAAyC,EAEA,IAAApB,SAAA6S,EACA,QAGA,WAAAA,EACA,MAAAzR,EAGA,IAAA0C,MAAAC,QAAA8O,GAAA,CACA,GAAAjE,KAcA,OAZAiE,GAAAxE,QAAA4E,OAAA3E,QAAA,SAAA4E,GACAlT,SAAAkT,IAIA,OAAAA,EACAtE,EAAAvK,KAAA0N,EAAA3Q,EAAA4Q,IAEApD,EAAAvK,KAAA0N,EAAA3Q,EAAA4Q,GAAA,IAAAD,EAAAmB,EAAAlB,OAIApD,EAAAkE,KAAA,KAGA,MAAAf,GAAA3Q,EAAA4Q,GAAA,IAAAD,EAAAc,EAAAb,KACEzD,OAAA,SAAA4E,GACF,MAAAA,GAAAjS,OAAA,IACE4R,KAAA,UrBgpDI,SAASpV,EAAQD,GsBhvDvB,YACAC,GAAAD,QAAA,SAAA6U,GACA,MAAAH,oBAAAG,GAAAhO,QAAA,oBAAA9F,GACA,UAAAA,EAAA4U,WAAA,GAAAlJ,SAAA,IAAAmJ,kBtByvDM,SAAS3V,EAAQD,GuB5vDvB,YAKA,SAAA6V,GAAAT,GACA,UAAAA,GAAA7S,SAAA6S,EACA,SAAAU,WAAA,wDAGA,OAAAzU,QAAA+T,GAGA,QAAAW,KACA,IACA,IAAA1U,OAAAgC,OACA,QAMA,IAAA2S,GAAA,GAAAC,QAAA,MAEA,IADAD,EAAA,QACA,MAAA3U,OAAA6U,oBAAAF,GAAA,GACA,QAKA,QADAG,MACA5S,EAAA,EAAiB,GAAAA,EAAQA,IACzB4S,EAAA,IAAAF,OAAAG,aAAA7S,KAEA,IAAA8S,GAAAhV,OAAA6U,oBAAAC,GAAA/C,IAAA,SAAA3H,GACA,MAAA0K,GAAA1K,IAEA,mBAAA4K,EAAAhB,KAAA,IACA,QAIA,IAAAiB,KAIA,OAHA,uBAAAxB,MAAA,IAAAjE,QAAA,SAAA0F,GACAD,EAAAC,OAGA,yBADAlV,OAAA0L,KAAA1L,OAAAgC,UAAkCiT,IAAAjB,KAAA,IAMhC,MAAA/L,GAEF,UAnDA,GAAAzF,GAAAxC,OAAAuC,UAAAC,eACA2S,EAAAnV,OAAAuC,UAAA6S,oBAsDAxW,GAAAD,QAAA+V,IAAA1U,OAAAgC,OAAA,SAAAC,EAAAI,GAKA,OAJAmM,GAEA6G,EADAC,EAAAd,EAAAvS,GAGAsT,EAAA,EAAgBA,EAAApT,UAAAC,OAAsBmT,IAAA,CACtC/G,EAAAxO,OAAAmC,UAAAoT,GAEA,QAAAjT,KAAAkM,GACAhM,EAAAhD,KAAAgP,EAAAlM,KACAgT,EAAAhT,GAAAkM,EAAAlM,GAIA,IAAAtC,OAAAwV,sBAAA,CACAH,EAAArV,OAAAwV,sBAAAhH,EACA,QAAAtM,GAAA,EAAkBA,EAAAmT,EAAAjT,OAAoBF,IACtCiT,EAAA3V,KAAAgP,EAAA6G,EAAAnT,MACAoT,EAAAD,EAAAnT,IAAAsM,EAAA6G,EAAAnT,MAMA,MAAAoT,KvBowDM,SAAS1W,EAAQD,GAEtB,YAEAqB,QAAOC,eAAetB,EAAS,cAC7BuB,OAAO,GwB11DGvB,GAAAgC,iBAAmB,0BACnBhC,EAAA+B,KAAO,cACP/B,EAAA8B,QAAU,iBACV9B,EAAA6B,GAAK,YACL7B,EAAA2B,QAAU,iBACV3B,EAAA4B,WAAa,qBxBg2DpB,SAAS3B,EAAQD,EAASQ,GAE/B,YAUA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GARvFG,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,GyB12DV,IAAAuV,GAAAtW,EAAA,IzB+2DKuW,EAAe9V,EAAuB6V,EAI1C9W,cyBj3Dc,SAAAoF,GACb,GAAM4R,GAAkB3V,OAAO0L,KAAK3H,GAAQgO,IAAI,SAAA6D,GAAA,OAC9CA,QACAC,QAAS,GAAAH,cAAeE,GACxB9F,OAAQ/L,EAAO6R,KAGjB,OAAO,UAAAE,GAEL,GAAMF,GAAQE,EAAYrC,MAAM,KAAK,EAGrC,KAAK,GAAMnR,KAAOqT,GAChB,GAAIA,EAAgBnT,eAAeF,GAAM,CACvC,GAAMyT,GAAcJ,EAAgBrT,GAC9BgK,EAAQyJ,EAAYF,QAAQvJ,MAAMsJ,EAExC,IAAItJ,EAEF,OACEsJ,MAAOG,EAAYH,MACnBI,OAAQ1J,EACRwD,OAAQiG,EAAYjG,QAM5B,MAAO,SzBy3DL,SAASlR,EAAQD,EAASQ,G0Bv5DhC,GAAA8W,GAAAC,EAAAC,EACA5G,YAEA,SAAA9Q,EAAAC,GACA,aAAAS,EAAA,KACA+W,KAAAD,EAAA,EAAAE,EAAA,kBAAAF,KAAAhF,MAAAtS,EAAAuX,GAAAD,IAAA/U,SAAAiV,IAAAvX,EAAAD,QAAAwX,KACG,mBAAAxX,IAAA,OAAAA,EACHC,EAAAD,QAAAD,IAEAD,EAAA2X,WAAA1X,KAECM,KAAA,WACD,GAAAqX,GAAAD,EAAAE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAnJ,CAsaA,OAraA8I,GAAA,SAAAlK,GACA,MAAAA,GAAAlH,QAAA,yBAA+C,SAE/CkR,EAAA,SAAAQ,EAAAhP,GACA,GAAAhG,GAAAE,EAAA+U,CAIA,KAHAA,KACAjV,EAAA,GACAE,EAAA8U,EAAA9U,SACAF,EAAAE,GACA+U,IAAA7H,OAAApH,EAAAgP,EAAAhV,IAEA,OAAAiV,IAEAF,EAAA,SAAAC,EAAAhP,GACA,GAAAhG,GAAAE,EAAA0N,CAIA,KAHAA,EAAA,GACA5N,EAAA,GACAE,EAAA8U,EAAA9U,SACAF,EAAAE,GACA0N,GAAA5H,EAAAgP,EAAAhV,GAEA,OAAA4N,IAEAkH,EAAA,SAAAI,GACA,UAAA/K,QAAA+K,EAAAhM,WAAA,KAAAiM,KAAA,IAAAjV,OAAA,GAEA0U,EAAA,SAAApL,EAAA4L,GACA,GAAApV,GAAAI,EAAAF,EAAA8I,EAAAhL,CAIA,KAHAgL,KACAhJ,EAAA,GACAE,EAAAsJ,EAAAtJ,SACAF,EAAAE,GACAE,EAAAoJ,EAAAxJ,GACAhC,EAAAoX,EAAApV,GACA,MAAAhC,IAGA,MAAAgL,EAAA5I,IACA0C,MAAAC,QAAAiG,EAAA5I,MACA4I,EAAA5I,IAAA4I,EAAA5I,KAEA4I,EAAA5I,GAAAiD,KAAArF,IAEAgL,EAAA5I,GAAApC,EAGA,OAAAgL,IAEAmL,KACAA,EAAAkB,OAAA,SAAArX,EAAAsX,GACAxY,KAAAkB,QACAlB,KAAAwY,QAEAnB,EAAAoB,OAAA,SAAAC,EAAAxX,GACAlB,KAAA0Y,MACA1Y,KAAAkB,SAEAmW,EAAAqB,IAAA,SAAAA,EAAAC,GACA,gBAAA3M,GACA,GAAA8E,GAAA8H,CAEA,OADA9H,GAAA6H,EAAA3M,GACA,MAAA8E,GAGA8H,EAAA,GAAAvB,GAAAoB,OAAAC,EAAA5H,EAAA5P,OACA,GAAAmW,GAAAkB,OAAAK,EAAA9H,EAAA0H,OAJA,SAOAnB,EAAAe,MAAA,SAAAA,GACA,gBAAApM,GACA,GAAA6M,GAAA/H,CAEA,OADA+H,GAAAT,EAAAC,KAAArM,GACA,MAAA6M,GAGA/H,EAAA+H,EAAA,GACA,GAAAxB,GAAAkB,OAAAzH,EAAA9E,EAAAuE,MAAAO,EAAA1N,UAJA,SAOAiU,EAAAyB,SAAA,WACA,GAAAC,EAEA,OADAA,GAAA,GAAA5V,UAAAC,OAAAmN,EAAA/P,KAAA2C,UAAA,MACA,SAAA6I,GACA,GAAA9I,GAAAE,EAAAuV,EAAAH,EAAA1H,EAAAwH,CAKA,KAJApV,EAAA,GACAE,EAAA2V,EAAA3V,OACAkV,KACAE,EAAAxM,IACA9I,EAAAE,GAAA,CAGA,GAFAuV,EAAAI,EAAA7V,GACA4N,EAAA6H,EAAAH,GACA,MAAA1H,EACA,MAEAwH,GAAA/R,KAAAuK,EAAA5P,OACAsX,EAAA1H,EAAA0H,KAEA,UAAAnB,GAAAkB,OAAAD,EAAAE,KAGAnB,EAAA2B,KAAA,WACA,GAAAC,GAAAF,CAEA,OADAE,GAAA9V,UAAA,GAAA4V,EAAA,GAAA5V,UAAAC,OAAAmN,EAAA/P,KAAA2C,UAAA,MACA,SAAA6I,GACA,GAAAkM,GAAApH,CAEA,OADAA,GAAAuG,EAAAyB,SAAA7G,MAAAoF,EAAA0B,GAAA/M,GACA,MAAA8E,GAGAoH,EAAApH,EAAA5P,MACA4P,EAAA5P,MAAAgX,EAAAe,GACAnI,GALA,SAQAuG,EAAA3J,OAAA,SAAAA,GACA,GAAAtK,EAEA,OADAA,GAAAsK,EAAAtK,OACA,SAAA4I,GACA,MAAAA,GAAAuE,MAAA,EAAAnN,KAAAsK,EACA,GAAA2J,GAAAkB,OAAA7K,EAAA1B,EAAAuE,MAAAnN,IADA,SAKAiU,EAAA6B,KAAA,SAAAC,GACA,GAAAC,EAEA,OADAA,GAAA,KACA,SAAApN,GAIA,MAHA,OAAAoN,IACAA,EAAAD,KAEAC,EAAApN,KAGAqL,EAAAgC,SAAA,SAAAV,EAAAW,EAAAC,EAAAC,EAAAxN,GACA,GAAAyN,GAAAC,EAAAlB,EAAAL,CAGA,KAFAK,EAAAxM,EACAmM,EAAAoB,EAAA,QACA,CACA,SAAAD,IACAG,EAAAH,EAAAd,GACA,MAAAiB,GACA,KAIA,IADAC,EAAAf,EAAAH,GACA,MAAAkB,EACA,KAEAH,GACApB,GAAAuB,EAAAxY,MAEAiX,EAAA5R,KAAAmT,EAAAxY,OAEAsX,EAAAkB,EAAAlB,KAEA,MAAAgB,IAAA,IAAArB,EAAA/U,OAAA,OAGA,GAAAiU,GAAAkB,OAAAJ,EAAAK,IAEAnB,EAAAsC,MAAA,SAAAhB,GACA,gBAAA3M,GACA,MAAAqL,GAAAgC,SAAAV,EAAA,WAAA3M,KAGAqL,EAAAuC,gBAAA,SAAAjB,EAAAW,GACA,gBAAAtN,GACA,MAAAqL,GAAAgC,SAAAV,EAAAW,GAAA,KAAAtN,KAGAqL,EAAAwC,YAAA,WACA,GAAAd,EAEA,OADAA,GAAA,GAAA5V,UAAAC,OAAAmN,EAAA/P,KAAA2C,UAAA,MACA,SAAA6I,GACA,GAAA9I,GAAAE,EAAAuV,EAAA7H,CAGA,KAFA5N,EAAA,GACAE,EAAA2V,EAAA3V,SACAF,EAAAE,GAGA,GAFAuV,EAAAI,EAAA7V,GACA4N,EAAA6H,EAAA3M,GACA,MAAA8E,EACA,MAAAA,KAKAiH,EAAA,SAAAtQ,GACA,GAAAqS,EAoBA,OAnBAA,MACAA,EAAAC,SAAA1C,EAAAqB,IAAA,WAAArB,EAAA3J,OAAAjG,EAAAuS,eACAF,EAAAG,SAAA5C,EAAAqB,IAAA,WAAArB,EAAA2B,KAAA,EAAA3B,EAAA3J,OAAAjG,EAAAyS,0BAAA7C,EAAA6B,KAAA,WACA,MAAAY,GAAAjD,UACKQ,EAAA3J,OAAAjG,EAAA0S,0BACLL,EAAAvQ,KAAA8N,EAAAe,MAAA,GAAA/K,QAAA,KAAA5F,EAAA2S,mBAAA,OACAN,EAAAO,MAAAhD,EAAAqB,IAAA,QAAArB,EAAA2B,KAAA,EAAA3B,EAAA3J,OAAAjG,EAAA6S,sBAAAjD,EAAA6B,KAAA,WACA,MAAAY,GAAAvQ,SAEAuQ,EAAAS,YAAAlD,EAAA2B,KAAA,EAAA3B,EAAA3J,OAAAjG,EAAA+S,YAAAnD,EAAAe,MAAA,OACA0B,EAAA,UAAAzC,EAAAqB,IAAA,SAAArB,EAAAuC,gBAAAvC,EAAAwC,YAAAxC,EAAA6B,KAAA,WACA,MAAAY,GAAAS,cACKlD,EAAAe,MAAA,OAAAf,EAAAwC,YAAAxC,EAAA3J,OAAAjG,EAAA6S,sBAAAjD,EAAA3J,OAAAjG,EAAAyS,0BAAA7C,EAAA3J,OAAAjG,EAAA0S,wBAAAL,EAAAC,YACLD,EAAAW,MAAApD,EAAA6B,KAAA,WACA,MAAA7B,GAAAwC,YAAAC,EAAAC,SAAAD,EAAAG,SAAAH,EAAAO,MAAAP,EAAA,aAEAA,EAAAjD,QAAAQ,EAAAsC,MAAAtC,EAAA6B,KAAA,WACA,MAAAY,GAAAW,SAEAX,GAEAnC,GACA6C,WAAA,KACAF,qBAAA,IACAI,oBAAA,iBACAN,mBAAA,YACAF,yBAAA,IACAC,uBAAA,IACAH,aAAA,KAEAvC,EAAA,SAAAkD,EAAAD,GACA,GAAA1U,MAAAC,QAAA0U,GACA,MAAA1C,GAAA0C,EAAA,SAAA5M,GACA,MAAA0J,GAAA1J,EAAA2M,IAGA,QAAAC,EAAAjC,KACA,eACA,aACA,aACA,WAAAgC,EAAA,KACA,cACA,MAAA9C,GAAA+C,EAAAzZ,MACA,gBACA,YAAAuW,EAAAkD,EAAAzZ,MAAAwZ,GAAA,OAGAlD,EAAA,SAAAmD,EAAAD,GAIA,MAHA,OAAAA,IACAA,EAAA/C,EAAA+C,qBAEA,IAAAjD,EAAAkD,EAAAD,GAAA,KAEAnD,EAAA,SAAAoD,GACA,GAAA3U,MAAAC,QAAA0U,GACA,MAAAjD,GAAAiD,EAAApD,EAEA,QAAAoD,EAAAjC,KACA,eACA,WACA,aACA,OAAAiC,EAAAzZ,MACA,cACA,QACA,gBACA,MAAAqW,GAAAoD,EAAAzZ,SAGA2W,EAAA,SAAAb,EAAA1T,EAAAsX,EAAAC,GACA,GAAApO,GAAAqO,EAAAhK,EAAA5P,CAKA,IAJA,MAAA2Z,IACAA,GAAA,GAEA3Z,EAAA8V,EAAA1T,GACA,MAAApC,EAAA,CASA,GAFAuL,EAAAmO,EAAAtX,IAAA,EACAwX,EAAA9U,MAAAC,QAAA/E,KAAAkC,OAAA,MACAqJ,EAAAqO,GAWA,MAJAhK,GAAA9K,MAAAC,QAAA/E,KAAAuL,GAAAvL,EACA2Z,IACAD,EAAAtX,GAAAmJ,EAAA,GAEAqE,CAVA,IAAA+J,EACA,SAAAzR,OAAA,oCAAA9F,EAAA,SAVA,IAAAuX,EACA,SAAAzR,OAAA,+BAAA9F,EAAA,MAoBAgU,EAAA,SAAAqD,EAAA3D,EAAA4D,GACA,GAAA1X,GAAAE,CACA,IAAA4C,MAAAC,QAAA0U,GAAA,CAGA,IAFAzX,EAAA,GACAE,EAAAuX,EAAAvX,SACAF,EAAAE,GACA,GAAAkU,EAAAqD,EAAAzX,GAAA8T,EAAA4D,GACA,QAGA,UAEA,OAAAD,EAAAjC,KACA,eACA,aAAAb,EAAAb,EAAA,IAAA4D,GAAA,EACA,aACA,aAAA/C,EAAAb,EAAA2D,EAAAzZ,MAAA0Z,GAAA,EACA,cACA,QACA,gBACA,MAAAtD,GAAAqD,EAAAzZ,MAAA8V,EAAA4D,KAGA9L,EAAA,SAAA6L,EAAA3D,EAAA4D,GACA,GAAA5U,MAAAC,QAAA0U,GACA,MAAA1C,GAAA0C,EAAA,SAAA5M,GACA,MAAAe,GAAAf,EAAAiJ,EAAA4D,IAGA,QAAAD,EAAAjC,KACA,eACA,MAAAb,GAAAb,EAAA,IAAA4D,GAAA,EACA,aACA,MAAA/C,GAAAb,EAAA2D,EAAAzZ,MAAA0Z,GAAA,EACA,cACA,MAAAD,GAAAzZ,KACA,gBACA,MAAAoW,GAAAqD,EAAAzZ,MAAA8V,EAAA4D,GACA9L,EAAA6L,EAAAzZ,MAAA8V,EAAA4D,GAEA,KAIAxD,EAAA,SAAA2D,EAAAC,GACA,GAAAC,GAAAxT,EAAAyT,EAAAvC,EAAAwC,CACA,IAAAJ,YAAA3D,GAKA,MAJApX,MAAAob,QAAAL,EAAAK,QACApb,KAAAoY,MAAA2C,EAAA3C,MACApY,KAAAqb,IAAAN,EAAAM,SACArb,KAAAsb,MAAAP,EAAAO,MAIA,IADAtb,KAAAob,QAAAL,YAAA1N,QACA,gBAAA0N,KAAA/a,KAAAob,QACA,SAAA3F,WAAA,uCAEA,IAAAzV,KAAAob,SAEA,GADApb,KAAAoY,MAAA2C,EACA,MAAAC,EAAA,CACA,IAAAhV,MAAAC,QAAA+U,GACA,SAAA5R,OAAA,kHAGA,IADA6R,EAAAjD,EAAAhY,KAAAoY,OACA4C,EAAA5X,SAAA6X,EACA,SAAA7R,OAAA,kBAAA6R,EAAA,6CAAAD,EAAA5X,OAEApD,MAAAsb,MAAAN,OAVA,CAcA,QAAAD,EACA,SAAA3R,OAAA,wCAGA,IADA+R,EAAAJ,EAAAvU,QAAA,WACA2U,IAAAJ,EACA,SAAA3R,OAAA,uCAaA,IAXA3B,GACA+S,YAAA,MAAAQ,IAAAR,WAAA,SAAA7C,EAAA6C,WACAF,sBAAA,MAAAU,IAAAV,qBAAA,SAAA3C,EAAA2C,qBACAF,oBAAA,MAAAY,IAAAZ,mBAAA,SAAAzC,EAAAyC,mBACAM,qBAAA,MAAAM,IAAAN,oBAAA,SAAA/C,EAAA+C,oBACAR,0BAAA,MAAAc,IAAAd,yBAAA,SAAAvC,EAAAuC,yBACAC,wBAAA,MAAAa,IAAAb,uBAAA,SAAAxC,EAAAwC,uBACAH,cAAA,MAAAgB,IAAAhB,aAAA,SAAArC,EAAAqC,cAEArB,EAAAZ,EAAAtQ,GACAyT,EAAAvC,EAAA9B,QAAAkE,GACA,MAAAG,EACA,SAAA9R,OAAA,yBAEA,SAAA8R,EAAA1C,KACA,SAAApP,OAAA,qCAEApJ,MAAAqb,IAAAH,EAAAha,MACAlB,KAAAoY,MAAA,GAAA/K,QAAAmK,EAAAxX,KAAAqb,IAAA5T,EAAAiT,sBACA1a,KAAAsb,MAAA/D,EAAAvX,KAAAqb,OAEAjE,EAAA7T,UAAA+J,MAAA,SAAAiO,GACA,GAAAC,GAAAlO,CAEA,OADAA,GAAAtN,KAAAoY,MAAAC,KAAAkD,GACA,MAAAjO,EACA,MAEAkO,EAAAlO,EAAAiD,MAAA,GACAvQ,KAAAsb,MACAxD,EAAA9X,KAAAsb,MAAAE,GAEAA,IAGApE,EAAA7T,UAAAuL,UAAA,SAAAkI,GAIA,GAHA,MAAAA,IACAA,MAEAhX,KAAAob,QACA,SAAAhS,OAAA,kDAEA,IAAA4N,IAAAhW,OAAAgW,GACA,SAAA5N,OAAA,0CAEA,OAAA0F,GAAA9O,KAAAqb,IAAArE,OAEAI,EAAAQ,iBACAR,EAAAM,YACAN,EAAAa,kBACAb,EAAAY,kBACAZ,EAAAU,wBACAV,EAAAC,IACAD,EAAAW,YACAX,EAAAO,iBACAP,EAAAI,uBACAJ,EAAAG,iBACAH,EAAAS,WACAT,EAAAE,2CACAF,EAAAtI,YACAsI,K1B+5DM,SAASxX,EAAQD,I2Bj1EvB,SAAA8b,GAAA7b,EAAAD,QAAA8b,I3Bq1E8Bjb,KAAKb,OAI7B,SAASC,EAAQD,EAASQ,GAE/B,YAEAa,QAAOC,eAAetB,EAAS,cAC7BuB,OAAO,GAGT,IAAI6B,GAAW/B,OAAOgC,QAAU,SAAUC,GAAU,IAAK,GAAIC,GAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,GAAIG,GAASF,UAAUD,EAAI,KAAK,GAAII,KAAOD,GAAcrC,OAAOuC,UAAUC,eAAehD,KAAK6C,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,MAAOL,I4Bj2ExPH,EAAA3C,EAAA,G5Bq2ECR,c4Bn2Ec,WAAwB,GAAvBgG,GAAuBxC,UAAAC,QAAA,GAAAlB,SAAAiB,UAAA,MAAAA,UAAA,GAAXyC,EAAWzC,UAAA,EACrC,OAAIyC,GAAOrB,OAAPzB,EAAAnB,iBAEEgE,GAASA,EAAMrB,WAAasB,EAAOpB,QAAQF,SACtCqB,EAGT5C,KACK6C,EAAOpB,SACVkX,SAAU/V,EAAM+M,UAGb/M,I5B02EH,SAAS/F,EAAQD,EAASQ,GAE/B,YAYA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAVvFG,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,GAGT,IAAI6B,GAAW/B,OAAOgC,QAAU,SAAUC,GAAU,IAAK,GAAIC,GAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,GAAIG,GAASF,UAAUD,EAAI,KAAK,GAAII,KAAOD,GAAcrC,OAAOuC,UAAUC,eAAehD,KAAK6C,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,MAAOL,I6Bh4ExPL,EAAAzC,EAAA,I7Bo4EK0C,EAAkBjC,EAAuBgC,EAI7CjD,c6Bt4Ec,SAAAwE,GAAA,GAAAwX,GAAAxX,EACbG,WADapC,SAAAyZ,EACF,IADEA,EAAAC,EAAAzX,EAEba,QAFa9C,SAAA0Z,OAGb7W,EAHaZ,EAGbY,OACAM,EAJalB,EAIbkB,OAJa,OAAAtC,MAMVsC,EAAQ6E,gBACT5F,WACAU,WAEC,EAAAnC,cAAckC,GAAQT,M7B24ErB,SAAS1E,EAAQD,EAASQ,GAE/B,YAYA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASgb,GAAyBhb,EAAK6L,GAAQ,GAAIzJ,KAAa,KAAK,GAAIC,KAAKrC,GAAW6L,EAAKS,QAAQjK,IAAM,GAAkBlC,OAAOuC,UAAUC,eAAehD,KAAKK,EAAKqC,KAAcD,EAAOC,GAAKrC,EAAIqC,GAAM,OAAOD,GAEnN,QAAS6Y,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIvG,WAAU,qCAEhH,QAASwG,GAA2BC,EAAM1b,GAAQ,IAAK0b,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAO3b,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0b,EAAP1b,EAElO,QAAS4b,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI7G,WAAU,iEAAoE6G,GAAeD,GAAS9Y,UAAYvC,OAAO+K,OAAOuQ,GAAcA,EAAW/Y,WAAaoI,aAAezK,MAAOmb,EAAUnN,YAAY,EAAOqN,UAAU,EAAMC,cAAc,KAAeF,IAAYtb,OAAOyb,eAAiBzb,OAAOyb,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAlBjetb,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,GAGT,IAAIyb,GAAe,WAAc,QAASC,GAAiB3Z,EAAQ6I,GAAS,IAAK,GAAI5I,GAAI,EAAGA,EAAI4I,EAAM1I,OAAQF,IAAK,CAAE,GAAI2Z,GAAa/Q,EAAM5I,EAAI2Z,GAAW3N,WAAa2N,EAAW3N,aAAc,EAAO2N,EAAWL,cAAe,EAAU,SAAWK,KAAYA,EAAWN,UAAW,GAAMvb,OAAOC,eAAegC,EAAQ4Z,EAAWvZ,IAAKuZ,IAAiB,MAAO,UAAUb,EAAac,EAAYC,GAAiJ,MAA9HD,IAAYF,EAAiBZ,EAAYzY,UAAWuZ,GAAiBC,GAAaH,EAAiBZ,EAAae,GAAqBf,M8B/5EjiBgB,EAAA7c,EAAA,I9Bm6EK8c,EAAUrc,EAAuBoc,EAYrCrd,c8B76Ec,SAAAwE,GAAA,GAAGiC,GAAHjC,EAAGiC,KAAH,OAAe,UAAA8W,GAAqB,GAC3CC,GAD2C,SAAAC,GAE/C,QAAAD,GAAYrR,GAAOgQ,EAAA9b,KAAAmd,EAAA,IAAAE,GAAApB,EAAAjc,KAAAgB,OAAAsc,eAAAH,GAAA3c,KAAAR,KACX8L,GADW,OAEjBuR,GAAKvX,QAAWM,SAFCiX,EAF4B,MAAAjB,GAAAe,EAAAC,GAAAT,EAAAQ,IAAA7Z,IAAA,kBAAApC,MAAA,WAQ7C,OACE4E,OAAQ9F,KAAK8F,WAT8BxC,IAAA,SAAApC,MAAA,WAatC,GAAAqc,GACuBvd,KAAK8L,MAAd0M,GADd+E,EACCC,SADD3B,EAAA0B,GAAA,aAEP,OAAON,cAAAtT,cAACuT,EAAsB1E,OAfe2E,GAAAH,EAAAS,UA2BjD,OARAN,GAAeO,mBACb5X,OAAQkX,EAAAW,UAAUzR,QAGpBiR,EAAeS,WACbJ,SAAUR,EAAAW,UAAU5P,MAGfoP,K9Bs8EH,SAASvd,EAAQD,G+Bn+EvBC,EAAAD,QAAAM,G/By+EM,SAASL,EAAQD,EAASQ,GAE/B,YAiBA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASgb,GAAyBhb,EAAK6L,GAAQ,GAAIzJ,KAAa,KAAK,GAAIC,KAAKrC,GAAW6L,EAAKS,QAAQjK,IAAM,GAAkBlC,OAAOuC,UAAUC,eAAehD,KAAKK,EAAKqC,KAAcD,EAAOC,GAAKrC,EAAIqC,GAAM,OAAOD,GAEnN,QAAS6Y,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIvG,WAAU,qCAEhH,QAASwG,GAA2BC,EAAM1b,GAAQ,IAAK0b,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAO3b,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0b,EAAP1b,EAElO,QAAS4b,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI7G,WAAU,iEAAoE6G,GAAeD,GAAS9Y,UAAYvC,OAAO+K,OAAOuQ,GAAcA,EAAW/Y,WAAaoI,aAAezK,MAAOmb,EAAUnN,YAAY,EAAOqN,UAAU,EAAMC,cAAc,KAAeF,IAAYtb,OAAOyb,eAAiBzb,OAAOyb,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAvBjetb,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,IAETvB,EAAQkC,oBAAsBlC,EAAQmC,KAAOI,MAE7C,IAAIa,GAAW/B,OAAOgC,QAAU,SAAUC,GAAU,IAAK,GAAIC,GAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,GAAIG,GAASF,UAAUD,EAAI,KAAK,GAAII,KAAOD,GAAcrC,OAAOuC,UAAUC,eAAehD,KAAK6C,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,MAAOL,IAEnP0Z,EAAe,WAAc,QAASC,GAAiB3Z,EAAQ6I,GAAS,IAAK,GAAI5I,GAAI,EAAGA,EAAI4I,EAAM1I,OAAQF,IAAK,CAAE,GAAI2Z,GAAa/Q,EAAM5I,EAAI2Z,GAAW3N,WAAa2N,EAAW3N,aAAc,EAAO2N,EAAWL,cAAe,EAAU,SAAWK,KAAYA,EAAWN,UAAW,GAAMvb,OAAOC,eAAegC,EAAQ4Z,EAAWvZ,IAAKuZ,IAAiB,MAAO,UAAUb,EAAac,EAAYC,GAAiJ,MAA9HD,IAAYF,EAAiBZ,EAAYzY,UAAWuZ,GAAiBC,GAAaH,EAAiBZ,EAAae,GAAqBf,MgCp/EjiBgB,EAAA7c,EAAA,IhCw/EK8c,EAAUrc,EAAuBoc,GgCt/EtCla,EAAA3C,EAAA,IAEM0d,EAAoB,EAEpBC,EAAgB,SAAA1Z,GAAA,UACjBA,EAASO,UAAY,IAAKP,EAASE;EAElCyZ,EAAoB,SAAA3O,GACxB,GAAoB,gBAATA,GAAmB,CAC5B,GAAM4O,GAAmB5O,EAAKqF,MAAM,KAC9BnQ,EAAW0Z,EAAiB,GAC5BhZ,EAAQgZ,EAAiB,EAC/B,OAAOhZ,IAAUV,WAAU6F,OAAA,IAAYnF,IAAcV,YAEvD,MAAO8K,IAGH6O,EAA0B,SAAA9Z,GAI1B,GAHJ+Z,GAGI/Z,EAHJ+Z,aACAC,EAEIha,EAFJga,aACArO,EACI3L,EADJ2L,gBAEMsO,EAAetO,GACnBA,EAAgB9K,KAIlB,OACEmZ,IACAC,IACCF,EAAa/T,SACb+T,EAAalZ,OAGZV,SAAU4Z,EAAa5Z,SACvBU,MAAOoZ,GAIJF,GAGHG,EAAiB,SAAApV,GAAA,MAAKA,GAAEqV,QAAUrV,EAAEqV,SAAWT,GAC/CU,EAAc,SAAAtV,GAAA,MAClBuV,SAAQvV,EAAEwV,UAAYxV,EAAEyV,QAAUzV,EAAE0V,SAAW1V,EAAE2V,UAE7CC,EAAU,SAAAna,GAAiD,GAA/CuE,GAA+CvE,EAA/CuE,EAAGhG,EAA4CyB,EAA5CzB,OAAQmB,EAAoCM,EAApCN,SAAU+G,EAA0BzG,EAA1ByG,aAAcrF,EAAYpB,EAAZoB,MAC/CyY,GAAYtV,IAAMoV,EAAepV,IAAMhG,IAI3CgG,EAAE6V,iBAEEhZ,GACFA,EAAOM,MAAME,UACX/B,KAAM4G,EAAArI,EAAArB,QAAAqB,EAAApB,KACN8C,QAASJ,MAKTtC,EAAO,SAACgK,EAAOiT,GAAY,GAE7B3P,GAKEtD,EALFsD,KACAnM,EAIE6I,EAJF7I,OACAkb,EAGErS,EAHFqS,aACAhT,EAEEW,EAFFX,aACAqS,EACE1R,EADF0R,SAGM1X,EAAWiZ,EAAXjZ,OAEFkZ,EACJf,GACEC,aAAcH,EAAkB3O,GAChCU,gBAAiBhK,EAAOM,MAAM6Y,WAAWnZ,OACzCqY,iBAGE/Z,EAAW0B,EAAOM,MAAMf,QAC3B6E,eAAe8U,EAElB,OACE/B,cAAAtT,cAAA,KACEuV,UAAWpT,EAAMoT,UACjBC,MAAOrT,EAAMqT,MACb/P,KAAM0O,EAAc1Z,GACpBgb,QAAS,SAAAnW,GAAA,MAAK4V,IACZ5V,IACAhG,SACAmB,WACA+G,eACArF,aAGD0X,GAKP1b,GAAK8b,WACHxO,KAAM4N,EAAAW,UAAU0B,WAAWrC,EAAAW,UAAUjQ,OAAQsP,EAAAW,UAAUzR,SACvDf,aAAc6R,EAAAW,UAAU2B,KACxBnB,aAAcnB,EAAAW,UAAU2B,KACxBrc,OAAQ+Z,EAAAW,UAAUjQ,OAClBwR,UAAWlC,EAAAW,UAAUjQ,OACrByR,MAAOnC,EAAAW,UAAUzR,OACjBsR,SAAUR,EAAAW,UAAU5P,MAGtBjM,EAAKyd,cACHzZ,OAAQkX,EAAAW,UAAUzR,OAGpB,IAAMrK,GAAA,SAAAub,GAAA,QAAAvb,KAAA,MAAAia,GAAA9b,KAAA6B,GAAAoa,EAAAjc,KAAAgB,OAAAsc,eAAAzb,GAAAoQ,MAAAjS,KAAAmD,YAAA,MAAAiZ,GAAAva,EAAAub,GAAAT,EAAA9a,IAAAyB,IAAA,SAAApC,MAAA,WACK,GAAAqc,GACuBvd,KAAK8L,MAA3B0R,EADDD,EACCC,SAAahF,EADdqD,EAAA0B,GAAA,YAEP,OAAON,cAAAtT,cAAC7H,EAADiB,KAAUyV,GAAM2F,cAAA,IAAcX,OAHnC3b,GAAAmb,EAAAS,UAON5b,GAAoB+b,WAClBJ,SAAUR,EAAAW,UAAU5P,MAGtBlM,EAAoB0d,cAClBzZ,OAAQkX,EAAAW,UAAUzR,QhC4hFnBvM,EgCzhFQmC,OhC0hFRnC,EgC1hFckC,uBhC8hFT,SAASjC,EAAQD,EAASQ,GAE/B,YAUA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GARvFG,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,GiCtqFV,IAAA8b,GAAA7c,EAAA,IjC2qFK8c,EAAUrc,EAAuBoc,GiCzqFhCpb,EAAW,SAACkK,EAAOiT,GAAY,GAC3BS,GAAkD1T,EAAlD0T,SAAUC,EAAwC3T,EAAxC2T,UAAWC,EAA6B5T,EAA7B4T,eAAgBlC,EAAa1R,EAAb0R,SACrCpX,EAAU2Y,EAAQjZ,OAAlBM,MACA/B,EAAe+B,EAAf/B,WAH2Bsb,EAINvZ,EAAM6Y,WAAnB7a,EAJmBub,EAI3B7Z,MAER,IACE0Z,GACAnb,EAAWD,EAASE,UAAUsS,QAAU4I,EAExC,MAAO,KAGT,IAAIC,EAAW,CACb,GAAMG,GAAWH,EAAUI,KAAK,SAAAjJ,GAAA,MAC9BvS,GAAWD,EAASE,UAAUsS,QAAUA,GAG1C,KAAKgJ,EACH,MAAO,MAIX,MAAIF,KAAmBA,EAAetb,GAC7B,KAGF6Y,aAAAtT,cAAA,WAAM6T,GAGf5b,GAASgc,WACP4B,SAAUxC,EAAAW,UAAUjQ,OACpB+R,UAAWzC,EAAAW,UAAUmC,QAAQ9C,EAAAW,UAAUjQ,QACvCgS,eAAgB1C,EAAAW,UAAUoC,KAC1BvC,SAAUR,EAAAW,UAAU5P,MAGtBnM,EAAS2d,cACPzZ,OAAQkX,EAAAW,UAAUzR,QjCwrFnBvM,aiCrrFciC","file":"redux-little-router.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_29__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_29__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.createMatcher = exports.locationDidChange = exports.routerReducer = exports.GO_BACK = exports.GO_FORWARD = exports.GO = exports.REPLACE = exports.PUSH = exports.LOCATION_CHANGED = exports.Fragment = exports.PersistentQueryLink = exports.Link = exports.provideRouter = exports.initializeCurrentLocation = exports.createStoreWithRouter = undefined;\n\t\n\tvar _storeEnhancer = __webpack_require__(1);\n\t\n\tvar _storeEnhancer2 = _interopRequireDefault(_storeEnhancer);\n\t\n\tvar _provider = __webpack_require__(28);\n\t\n\tvar _provider2 = _interopRequireDefault(_provider);\n\t\n\tvar _link = __webpack_require__(30);\n\t\n\tvar _fragment = __webpack_require__(31);\n\t\n\tvar _fragment2 = _interopRequireDefault(_fragment);\n\t\n\tvar _reducer = __webpack_require__(26);\n\t\n\tvar _reducer2 = _interopRequireDefault(_reducer);\n\t\n\tvar _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.\n\t// High-level Redux API\n\tcreateStoreWithRouter = _storeEnhancer2.default;\n\texports.initializeCurrentLocation = _storeEnhancer.initializeCurrentLocation;\n\texports.\n\t\n\t// React API\n\tprovideRouter = _provider2.default;\n\texports.Link = _link.Link;\n\texports.PersistentQueryLink = _link.PersistentQueryLink;\n\texports.Fragment = _fragment2.default;\n\texports.\n\t\n\t// Public action types\n\tLOCATION_CHANGED = _actionTypes.LOCATION_CHANGED;\n\texports.PUSH = _actionTypes.PUSH;\n\texports.REPLACE = _actionTypes.REPLACE;\n\texports.GO = _actionTypes.GO;\n\texports.GO_FORWARD = _actionTypes.GO_FORWARD;\n\texports.GO_BACK = _actionTypes.GO_BACK;\n\texports.\n\t\n\t// Low-level Redux utilities\n\trouterReducer = _reducer2.default;\n\texports.locationDidChange = _storeEnhancer.locationDidChange;\n\texports.createMatcher = _createMatcher2.default;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.initializeCurrentLocation = exports.locationDidChange = undefined;\n\t\n\tvar _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\t\n\tvar _createBrowserHistory = __webpack_require__(2);\n\t\n\tvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\t\n\tvar _createMemoryHistory = __webpack_require__(16);\n\t\n\tvar _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);\n\t\n\tvar _useBasename = __webpack_require__(17);\n\t\n\tvar _useBasename2 = _interopRequireDefault(_useBasename);\n\t\n\tvar _useQueries = __webpack_require__(18);\n\t\n\tvar _useQueries2 = _interopRequireDefault(_useQueries);\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\tvar _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tvar _reducer = __webpack_require__(26);\n\t\n\tvar _reducer2 = _interopRequireDefault(_reducer);\n\t\n\tvar _initialRouterState = __webpack_require__(27);\n\t\n\tvar _initialRouterState2 = _interopRequireDefault(_initialRouterState);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar locationDidChange = exports.locationDidChange = function locationDidChange(_ref) {\n\t var location = _ref.location;\n\t var matchRoute = _ref.matchRoute;\n\t\n\t // Extract the pathname so that we don't match against the basename.\n\t // This avoids requiring basename-hardcoded routes.\n\t var pathname = location.pathname;\n\t\n\t\n\t return {\n\t type: _actionTypes.LOCATION_CHANGED,\n\t payload: _extends({}, location, matchRoute(pathname))\n\t };\n\t};\n\t\n\tvar initializeCurrentLocation = exports.initializeCurrentLocation = function initializeCurrentLocation(location) {\n\t return {\n\t type: _actionTypes.LOCATION_CHANGED,\n\t payload: location\n\t };\n\t};\n\t\n\tvar resolveHistory = function resolveHistory(_ref2) {\n\t var basename = _ref2.basename;\n\t var forServerRender = _ref2.forServerRender;\n\t\n\t var historyFactory = forServerRender ? _createMemoryHistory2.default : _createBrowserHistory2.default;\n\t\n\t return (0, _useBasename2.default)((0, _useQueries2.default)(historyFactory))({\n\t basename: basename\n\t });\n\t};\n\t\n\texports.default = function (_ref3) {\n\t var routes = _ref3.routes;\n\t var pathname = _ref3.pathname;\n\t var query = _ref3.query;\n\t var _ref3$basename = _ref3.basename;\n\t var basename = _ref3$basename === undefined ? '' : _ref3$basename;\n\t var _ref3$forServerRender = _ref3.forServerRender;\n\t var forServerRender = _ref3$forServerRender === undefined ? false : _ref3$forServerRender;\n\t var _ref3$createMatcher = _ref3.createMatcher;\n\t var createMatcher = _ref3$createMatcher === undefined ? _createMatcher2.default : _ref3$createMatcher;\n\t var userHistory = _ref3.history;\n\t\n\t var history = userHistory || resolveHistory({\n\t basename: basename, forServerRender: forServerRender\n\t });\n\t\n\t return function (createStore) {\n\t return function (reducer, initialState, enhancer) {\n\t var enhancedReducer = function enhancedReducer(state, action) {\n\t var vanillaState = _extends({}, state);\n\t delete vanillaState.router;\n\t\n\t var newState = reducer(vanillaState, action);\n\t\n\t // Support redux-loop\n\t if (Array.isArray(newState)) {\n\t var nextState = newState[0]; // eslint-disable-line no-magic-numbers\n\t var nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n\t return [_extends({}, nextState, {\n\t router: (0, _reducer2.default)(state.router, action)\n\t }), nextEffects];\n\t }\n\t\n\t return _extends({}, reducer(vanillaState, action), {\n\t router: (0, _reducer2.default)(state.router, action)\n\t });\n\t };\n\t\n\t var store = createStore(enhancedReducer, pathname || query ? _extends({}, initialState, {\n\t router: (0, _initialRouterState2.default)({\n\t pathname: pathname, query: query, routes: routes, history: history\n\t }) }) : initialState, enhancer);\n\t\n\t var matchRoute = createMatcher(routes);\n\t history.listen(function (location) {\n\t if (location) {\n\t store.dispatch(locationDidChange({\n\t location: location, matchRoute: matchRoute\n\t }));\n\t }\n\t });\n\t\n\t var dispatch = function dispatch(action) {\n\t switch (action.type) {\n\t case _actionTypes.PUSH:\n\t history.push(action.payload);\n\t return null;\n\t case _actionTypes.REPLACE:\n\t history.replace(action.payload);\n\t return null;\n\t case _actionTypes.GO:\n\t history.go(action.payload);\n\t return null;\n\t case _actionTypes.GO_BACK:\n\t history.goBack();\n\t return null;\n\t case _actionTypes.GO_FORWARD:\n\t history.goForward();\n\t return null;\n\t default:\n\t // We return the result of dispatch here\n\t // to retain compatibility with enhancers\n\t // that return a promise from dispatch.\n\t return store.dispatch(action);\n\t }\n\t };\n\t\n\t return _extends({}, store, { dispatch: dispatch, history: history, matchRoute: matchRoute });\n\t };\n\t };\n\t};\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _ExecutionEnvironment = __webpack_require__(4);\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\t\n\tvar _RefreshProtocol = __webpack_require__(12);\n\t\n\tvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\t\n\tvar _DOMUtils = __webpack_require__(10);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * Creates and returns a history object that uses HTML5's history API\n\t * (pushState, replaceState, and the popstate event) to manage history.\n\t * This is the recommended method of managing history in browsers because\n\t * it provides the cleanest URLs.\n\t *\n\t * Note: In browsers that do not support the HTML5 history API full\n\t * page reloads will be used to preserve clean URLs. You can force this\n\t * behavior using { forceRefresh: true } in options.\n\t */\n\tvar createBrowserHistory = function createBrowserHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t !_ExecutionEnvironment.canUseDOM ? false ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\t\n\t var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n\t var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\t\n\t var getUserConfirmation = Protocol.getUserConfirmation;\n\t var getCurrentLocation = Protocol.getCurrentLocation;\n\t var pushLocation = Protocol.pushLocation;\n\t var replaceLocation = Protocol.replaceLocation;\n\t var go = Protocol.go;\n\t\n\t\n\t var history = (0, _createHistory2.default)(_extends({\n\t getUserConfirmation: getUserConfirmation }, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var listenerCount = 0,\n\t stopListener = void 0;\n\t\n\t var startListener = function startListener(listener, before) {\n\t if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\t\n\t var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\t\n\t return function () {\n\t unlisten();\n\t\n\t if (--listenerCount === 0) stopListener();\n\t };\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t return startListener(listener, true);\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return startListener(listener, false);\n\t };\n\t\n\t return _extends({}, history, {\n\t listenBefore: listenBefore,\n\t listen: listen\n\t });\n\t};\n\t\n\texports.default = createBrowserHistory;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar invariant = function(condition, format, a, b, c, d, e, f) {\n\t if (false) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t }\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error(\n\t 'Minified exception occurred; use the non-minified dev environment ' +\n\t 'for the full error message and additional helpful warnings.'\n\t );\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(\n\t format.replace(/%s/g, function() { return args[argIndex++]; })\n\t );\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t};\n\t\n\tmodule.exports = invariant;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _DOMUtils = __webpack_require__(10);\n\t\n\tvar _DOMStateStorage = __webpack_require__(11);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\t/* eslint-disable no-alert */\n\t\n\t\n\tvar PopStateEvent = 'popstate';\n\t\n\tvar _createLocation = function _createLocation(historyState) {\n\t var key = historyState && historyState.key;\n\t\n\t return (0, _LocationUtils.createLocation)({\n\t pathname: window.location.pathname,\n\t search: window.location.search,\n\t hash: window.location.hash,\n\t state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n\t }, undefined, key);\n\t};\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t var historyState = void 0;\n\t try {\n\t historyState = window.history.state || {};\n\t } catch (error) {\n\t // IE 11 sometimes throws when accessing window.history.state\n\t // See https://github.com/mjackson/history/pull/289\n\t historyState = {};\n\t }\n\t\n\t return _createLocation(historyState);\n\t};\n\t\n\tvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n\t return callback(window.confirm(message));\n\t};\n\t\n\tvar startListener = exports.startListener = function startListener(listener) {\n\t var handlePopState = function handlePopState(event) {\n\t if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n\t listener(_createLocation(event.state));\n\t };\n\t\n\t (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\t\n\t return function () {\n\t return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\t };\n\t};\n\t\n\tvar updateLocation = function updateLocation(location, updateState) {\n\t var state = location.state;\n\t var key = location.key;\n\t\n\t\n\t if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\t\n\t updateState({ key: key }, (0, _PathUtils.createPath)(location));\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t return updateLocation(location, function (state, path) {\n\t return window.history.pushState(state, null, path);\n\t });\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t return updateLocation(location, function (state, path) {\n\t return window.history.replaceState(state, null, path);\n\t });\n\t};\n\t\n\tvar go = exports.go = function go(n) {\n\t if (n) window.history.go(n);\n\t};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\tvar _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\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createQuery = exports.createQuery = function createQuery(props) {\n\t return _extends(Object.create(null), props);\n\t};\n\t\n\tvar createLocation = exports.createLocation = function createLocation() {\n\t var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n\t var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\t\n\t var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\t\n\t var pathname = object.pathname || '/';\n\t var search = object.search || '';\n\t var hash = object.hash || '';\n\t var state = object.state;\n\t\n\t return {\n\t pathname: pathname,\n\t search: search,\n\t hash: hash,\n\t state: state,\n\t action: action,\n\t key: key\n\t };\n\t};\n\t\n\tvar isDate = function isDate(object) {\n\t return Object.prototype.toString.call(object) === '[object Date]';\n\t};\n\t\n\tvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n\t if (a === b) return true;\n\t\n\t var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n\t var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\t\n\t if (typeofA !== typeofB) return false;\n\t\n\t !(typeofA !== 'function') ? false ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\t\n\t // Not the same object, but same type.\n\t if (typeofA === 'object') {\n\t !!(isDate(a) && isDate(b)) ? false ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\t\n\t if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n\t return statesAreEqual(a[key], b[key]);\n\t });\n\t\n\t return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n\t return statesAreEqual(item, b[index]);\n\t });\n\t }\n\t\n\t // All other serializable types (string, number, boolean)\n\t // should be strict equal.\n\t return false;\n\t};\n\t\n\tvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n\t return a.key === b.key &&\n\t // a.action === b.action && // Different action !== location change.\n\t a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n\t return typeof path === 'string' && path.charAt(0) === '/';\n\t};\n\t\n\tvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n\t var _parsePath = parsePath(path);\n\t\n\t var pathname = _parsePath.pathname;\n\t var search = _parsePath.search;\n\t var hash = _parsePath.hash;\n\t\n\t\n\t return createPath({\n\t pathname: pathname,\n\t search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n\t hash: hash\n\t });\n\t};\n\t\n\tvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n\t var _parsePath2 = parsePath(path);\n\t\n\t var pathname = _parsePath2.pathname;\n\t var search = _parsePath2.search;\n\t var hash = _parsePath2.hash;\n\t\n\t\n\t return createPath({\n\t pathname: pathname,\n\t search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n\t return prefix === '?' ? prefix : suffix;\n\t }),\n\t hash: hash\n\t });\n\t};\n\t\n\tvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n\t var _parsePath3 = parsePath(path);\n\t\n\t var search = _parsePath3.search;\n\t\n\t var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n\t return match && match[1];\n\t};\n\t\n\tvar extractPath = function extractPath(string) {\n\t var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n\t return match == null ? string : string.substring(match[0].length);\n\t};\n\t\n\tvar parsePath = exports.parsePath = function parsePath(path) {\n\t var pathname = extractPath(path);\n\t var search = '';\n\t var hash = '';\n\t\n\t false ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\t\n\t var hashIndex = pathname.indexOf('#');\n\t if (hashIndex !== -1) {\n\t hash = pathname.substring(hashIndex);\n\t pathname = pathname.substring(0, hashIndex);\n\t }\n\t\n\t var searchIndex = pathname.indexOf('?');\n\t if (searchIndex !== -1) {\n\t search = pathname.substring(searchIndex);\n\t pathname = pathname.substring(0, searchIndex);\n\t }\n\t\n\t if (pathname === '') pathname = '/';\n\t\n\t return {\n\t pathname: pathname,\n\t search: search,\n\t hash: hash\n\t };\n\t};\n\t\n\tvar createPath = exports.createPath = function createPath(location) {\n\t if (location == null || typeof location === 'string') return location;\n\t\n\t var basename = location.basename;\n\t var pathname = location.pathname;\n\t var search = location.search;\n\t var hash = location.hash;\n\t\n\t var path = (basename || '') + pathname;\n\t\n\t if (search && search !== '?') path += search;\n\t\n\t if (hash) path += hash;\n\t\n\t return path;\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2014-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = function() {};\n\t\n\tif (false) {\n\t warning = function(condition, format, args) {\n\t var len = arguments.length;\n\t args = new Array(len > 2 ? len - 2 : 0);\n\t for (var key = 2; key < len; key++) {\n\t args[key - 2] = arguments[key];\n\t }\n\t if (format === undefined) {\n\t throw new Error(\n\t '`warning(condition, format, ...args)` requires a warning ' +\n\t 'message argument'\n\t );\n\t }\n\t\n\t if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n\t throw new Error(\n\t 'The warning format should be able to uniquely identify this ' +\n\t 'warning. Please, use a more descriptive format than: ' + format\n\t );\n\t }\n\t\n\t if (!condition) {\n\t var argIndex = 0;\n\t var message = 'Warning: ' +\n\t format.replace(/%s/g, function() {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch(x) {}\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Indicates that navigation was caused by a call to history.push.\n\t */\n\tvar PUSH = exports.PUSH = 'PUSH';\n\t\n\t/**\n\t * Indicates that navigation was caused by a call to history.replace.\n\t */\n\tvar REPLACE = exports.REPLACE = 'REPLACE';\n\t\n\t/**\n\t * Indicates that navigation was caused by some other action such\n\t * as using a browser's back/forward buttons and/or manually manipulating\n\t * the URL in a browser's location bar. This is the default.\n\t *\n\t * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n\t * for more information.\n\t */\n\tvar POP = exports.POP = 'POP';\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n\t return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n\t};\n\t\n\tvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n\t return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n\t};\n\t\n\t/**\n\t * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n\t *\n\t * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n\t * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n\t * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n\t */\n\tvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n\t var ua = window.navigator.userAgent;\n\t\n\t if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\t\n\t return window.history && 'pushState' in window.history;\n\t};\n\t\n\t/**\n\t * Returns false if using go(n) with hash history causes a full page reload.\n\t */\n\tvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n\t return window.navigator.userAgent.indexOf('Firefox') === -1;\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.readState = exports.saveState = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\t\n\t\n\tvar SecurityError = 'SecurityError';\n\tvar KeyPrefix = '@@History/';\n\t\n\tvar createKey = function createKey(key) {\n\t return KeyPrefix + key;\n\t};\n\t\n\tvar saveState = exports.saveState = function saveState(key, state) {\n\t if (!window.sessionStorage) {\n\t // Session storage is not available or hidden.\n\t // sessionStorage is undefined in Internet Explorer when served via file protocol.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n\t return;\n\t }\n\t\n\t try {\n\t if (state == null) {\n\t window.sessionStorage.removeItem(createKey(key));\n\t } else {\n\t window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n\t }\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return;\n\t }\n\t\n\t if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n\t // Safari \"private mode\" throws QuotaExceededError.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\t\n\t return;\n\t }\n\t\n\t throw error;\n\t }\n\t};\n\t\n\tvar readState = exports.readState = function readState(key) {\n\t var json = void 0;\n\t try {\n\t json = window.sessionStorage.getItem(createKey(key));\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return undefined;\n\t }\n\t }\n\t\n\t if (json) {\n\t try {\n\t return JSON.parse(json);\n\t } catch (error) {\n\t // Ignore invalid JSON.\n\t }\n\t }\n\t\n\t return undefined;\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tObject.defineProperty(exports, 'getUserConfirmation', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.getUserConfirmation;\n\t }\n\t});\n\tObject.defineProperty(exports, 'go', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.go;\n\t }\n\t});\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t return (0, _LocationUtils.createLocation)(window.location);\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t window.location.href = (0, _PathUtils.createPath)(location);\n\t return false; // Don't update location\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t window.location.replace((0, _PathUtils.createPath)(location));\n\t return false; // Don't update location\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _AsyncUtils = __webpack_require__(14);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tvar createHistory = function createHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var getCurrentLocation = options.getCurrentLocation;\n\t var getUserConfirmation = options.getUserConfirmation;\n\t var pushLocation = options.pushLocation;\n\t var replaceLocation = options.replaceLocation;\n\t var go = options.go;\n\t var keyLength = options.keyLength;\n\t\n\t\n\t var currentLocation = void 0;\n\t var pendingLocation = void 0;\n\t var beforeListeners = [];\n\t var listeners = [];\n\t var allKeys = [];\n\t\n\t var getCurrentIndex = function getCurrentIndex() {\n\t if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\t\n\t if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\t\n\t return -1;\n\t };\n\t\n\t var updateLocation = function updateLocation(nextLocation) {\n\t currentLocation = nextLocation;\n\t\n\t var currentIndex = getCurrentIndex();\n\t\n\t if (currentLocation.action === _Actions.PUSH) {\n\t allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n\t } else if (currentLocation.action === _Actions.REPLACE) {\n\t allKeys[currentIndex] = currentLocation.key;\n\t }\n\t\n\t listeners.forEach(function (listener) {\n\t return listener(currentLocation);\n\t });\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t beforeListeners.push(listener);\n\t\n\t return function () {\n\t return beforeListeners = beforeListeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var listen = function listen(listener) {\n\t listeners.push(listener);\n\t\n\t return function () {\n\t return listeners = listeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n\t (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n\t (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n\t return result != null ? done(result) : next();\n\t });\n\t }, function (message) {\n\t if (getUserConfirmation && typeof message === 'string') {\n\t getUserConfirmation(message, function (ok) {\n\t return callback(ok !== false);\n\t });\n\t } else {\n\t callback(message !== false);\n\t }\n\t });\n\t };\n\t\n\t var transitionTo = function transitionTo(nextLocation) {\n\t if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\t\n\t pendingLocation = nextLocation;\n\t\n\t confirmTransitionTo(nextLocation, function (ok) {\n\t if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\t\n\t pendingLocation = null;\n\t\n\t if (ok) {\n\t // Treat PUSH to same path like REPLACE to be consistent with browsers\n\t if (nextLocation.action === _Actions.PUSH) {\n\t var prevPath = (0, _PathUtils.createPath)(currentLocation);\n\t var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\t\n\t if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n\t }\n\t\n\t if (nextLocation.action === _Actions.POP) {\n\t updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.PUSH) {\n\t if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.REPLACE) {\n\t if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t }\n\t } else if (currentLocation && nextLocation.action === _Actions.POP) {\n\t var prevIndex = allKeys.indexOf(currentLocation.key);\n\t var nextIndex = allKeys.indexOf(nextLocation.key);\n\t\n\t if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n\t }\n\t });\n\t };\n\t\n\t var push = function push(input) {\n\t return transitionTo(createLocation(input, _Actions.PUSH));\n\t };\n\t\n\t var replace = function replace(input) {\n\t return transitionTo(createLocation(input, _Actions.REPLACE));\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength || 6);\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return (0, _PathUtils.createPath)(location);\n\t };\n\t\n\t var createLocation = function createLocation(location, action) {\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\t return (0, _LocationUtils.createLocation)(location, action, key);\n\t };\n\t\n\t return {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t transitionTo: transitionTo,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t createKey: createKey,\n\t createPath: _PathUtils.createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t };\n\t};\n\t\n\texports.default = createHistory;\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n\t var currentTurn = 0,\n\t isDone = false;\n\t var isSync = false,\n\t hasNext = false,\n\t doneArgs = void 0;\n\t\n\t var done = function done() {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t isDone = true;\n\t\n\t if (isSync) {\n\t // Iterate instead of recursing if possible.\n\t doneArgs = args;\n\t return;\n\t }\n\t\n\t callback.apply(undefined, args);\n\t };\n\t\n\t var next = function next() {\n\t if (isDone) return;\n\t\n\t hasNext = true;\n\t\n\t if (isSync) return; // Iterate instead of recursing if possible.\n\t\n\t isSync = true;\n\t\n\t while (!isDone && currentTurn < turns && hasNext) {\n\t hasNext = false;\n\t work(currentTurn++, next, done);\n\t }\n\t\n\t isSync = false;\n\t\n\t if (isDone) {\n\t // This means the loop finished synchronously.\n\t callback.apply(undefined, _toConsumableArray(doneArgs));\n\t return;\n\t }\n\t\n\t if (currentTurn >= turns && hasNext) {\n\t isDone = true;\n\t callback();\n\t }\n\t };\n\t\n\t next();\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n\t var result = hook(location, callback);\n\t\n\t if (hook.length < 2) {\n\t // Assume the hook runs synchronously and automatically\n\t // call the callback with the return value.\n\t callback(result);\n\t } else {\n\t false ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n\t }\n\t};\n\t\n\texports.default = runTransitionHook;\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createStateStorage = function createStateStorage(entries) {\n\t return entries.filter(function (entry) {\n\t return entry.state;\n\t }).reduce(function (memo, entry) {\n\t memo[entry.key] = entry.state;\n\t return memo;\n\t }, {});\n\t};\n\t\n\tvar createMemoryHistory = function createMemoryHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t if (Array.isArray(options)) {\n\t options = { entries: options };\n\t } else if (typeof options === 'string') {\n\t options = { entries: [options] };\n\t }\n\t\n\t var getCurrentLocation = function getCurrentLocation() {\n\t var entry = entries[current];\n\t var path = (0, _PathUtils.createPath)(entry);\n\t\n\t var key = void 0,\n\t state = void 0;\n\t if (entry.key) {\n\t key = entry.key;\n\t state = readState(key);\n\t }\n\t\n\t var init = (0, _PathUtils.parsePath)(path);\n\t\n\t return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n\t };\n\t\n\t var canGo = function canGo(n) {\n\t var index = current + n;\n\t return index >= 0 && index < entries.length;\n\t };\n\t\n\t var go = function go(n) {\n\t if (!n) return;\n\t\n\t if (!canGo(n)) {\n\t false ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\t\n\t return;\n\t }\n\t\n\t current += n;\n\t var currentLocation = getCurrentLocation();\n\t\n\t // Change action to POP\n\t history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n\t };\n\t\n\t var pushLocation = function pushLocation(location) {\n\t current += 1;\n\t\n\t if (current < entries.length) entries.splice(current);\n\t\n\t entries.push(location);\n\t\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var replaceLocation = function replaceLocation(location) {\n\t entries[current] = location;\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var history = (0, _createHistory2.default)(_extends({}, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var _options = options;\n\t var entries = _options.entries;\n\t var current = _options.current;\n\t\n\t\n\t if (typeof entries === 'string') {\n\t entries = [entries];\n\t } else if (!Array.isArray(entries)) {\n\t entries = ['/'];\n\t }\n\t\n\t entries = entries.map(function (entry) {\n\t return (0, _LocationUtils.createLocation)(entry);\n\t });\n\t\n\t if (current == null) {\n\t current = entries.length - 1;\n\t } else {\n\t !(current >= 0 && current < entries.length) ? false ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n\t }\n\t\n\t var storage = createStateStorage(entries);\n\t\n\t var saveState = function saveState(key, state) {\n\t return storage[key] = state;\n\t };\n\t\n\t var readState = function readState(key) {\n\t return storage[key];\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createMemoryHistory;\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar useBasename = function useBasename(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var basename = options.basename;\n\t\n\t\n\t var addBasename = function addBasename(location) {\n\t if (!location) return location;\n\t\n\t if (basename && location.basename == null) {\n\t if (location.pathname.indexOf(basename) === 0) {\n\t location.pathname = location.pathname.substring(basename.length);\n\t location.basename = basename;\n\t\n\t if (location.pathname === '') location.pathname = '/';\n\t } else {\n\t location.basename = '';\n\t }\n\t }\n\t\n\t return location;\n\t };\n\t\n\t var prependBasename = function prependBasename(location) {\n\t if (!basename) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var pname = object.pathname;\n\t var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n\t var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n\t var pathname = normalizedBasename + normalizedPathname;\n\t\n\t return _extends({}, location, {\n\t pathname: pathname\n\t });\n\t };\n\t\n\t // Override all read methods with basename-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return addBasename(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(addBasename(location));\n\t });\n\t };\n\t\n\t // Override all write methods with basename-aware versions.\n\t var push = function push(location) {\n\t return history.push(prependBasename(location));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(prependBasename(location));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(prependBasename(location));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(prependBasename(location));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useBasename;\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _queryString = __webpack_require__(19);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n\t return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n\t};\n\t\n\tvar defaultParseQueryString = _queryString.parse;\n\t\n\t/**\n\t * Returns a new createHistory function that may be used to create\n\t * history objects that know how to handle URL queries.\n\t */\n\tvar useQueries = function useQueries(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var stringifyQuery = options.stringifyQuery;\n\t var parseQueryString = options.parseQueryString;\n\t\n\t\n\t if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\t\n\t if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\t\n\t var decodeQuery = function decodeQuery(location) {\n\t if (!location) return location;\n\t\n\t if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\t\n\t return location;\n\t };\n\t\n\t var encodeQuery = function encodeQuery(location, query) {\n\t if (query == null) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var queryString = stringifyQuery(query);\n\t var search = queryString ? '?' + queryString : '';\n\t\n\t return _extends({}, object, {\n\t search: search\n\t });\n\t };\n\t\n\t // Override all read methods with query-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return decodeQuery(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(decodeQuery(location));\n\t });\n\t };\n\t\n\t // Override all write methods with query-aware versions.\n\t var push = function push(location) {\n\t return history.push(encodeQuery(location, location.query));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(encodeQuery(location, location.query));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(encodeQuery(location, location.query));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(encodeQuery(location, location.query));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\t\n\t if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\t\n\t return decodeQuery(newLocation);\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useQueries;\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar strictUriEncode = __webpack_require__(20);\n\tvar objectAssign = __webpack_require__(21);\n\t\n\tfunction encode(value, opts) {\n\t\tif (opts.encode) {\n\t\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t\t}\n\t\n\t\treturn value;\n\t}\n\t\n\texports.extract = function (str) {\n\t\treturn str.split('?')[1] || '';\n\t};\n\t\n\texports.parse = function (str) {\n\t\t// Create an object with no prototype\n\t\t// https://github.com/sindresorhus/query-string/issues/47\n\t\tvar ret = Object.create(null);\n\t\n\t\tif (typeof str !== 'string') {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\t\n\t\tif (!str) {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr.split('&').forEach(function (param) {\n\t\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\t\tvar key = parts.shift();\n\t\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\t\n\t\t\tkey = decodeURIComponent(key);\n\t\n\t\t\t// missing `=` should be `null`:\n\t\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\t\tval = val === undefined ? null : decodeURIComponent(val);\n\t\n\t\t\tif (ret[key] === undefined) {\n\t\t\t\tret[key] = val;\n\t\t\t} else if (Array.isArray(ret[key])) {\n\t\t\t\tret[key].push(val);\n\t\t\t} else {\n\t\t\t\tret[key] = [ret[key], val];\n\t\t\t}\n\t\t});\n\t\n\t\treturn ret;\n\t};\n\t\n\texports.stringify = function (obj, opts) {\n\t\tvar defaults = {\n\t\t\tencode: true,\n\t\t\tstrict: true\n\t\t};\n\t\n\t\topts = objectAssign(defaults, opts);\n\t\n\t\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\t\tvar val = obj[key];\n\t\n\t\t\tif (val === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\n\t\t\tif (val === null) {\n\t\t\t\treturn key;\n\t\t\t}\n\t\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\tvar result = [];\n\t\n\t\t\t\tval.slice().sort().forEach(function (val2) {\n\t\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (val2 === null) {\n\t\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\treturn result.join('&');\n\t\t\t}\n\t\n\t\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t\t}).filter(function (x) {\n\t\t\treturn x.length > 0;\n\t\t}).join('&') : '';\n\t};\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function (str) {\n\t\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t\t});\n\t};\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (Object.getOwnPropertySymbols) {\n\t\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar LOCATION_CHANGED = exports.LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\n\tvar PUSH = exports.PUSH = 'ROUTER_PUSH';\n\tvar REPLACE = exports.REPLACE = 'ROUTER_REPLACE';\n\tvar GO = exports.GO = 'ROUTER_GO';\n\tvar GO_BACK = exports.GO_BACK = 'ROUTER_GO_BACK';\n\tvar GO_FORWARD = exports.GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _urlPattern = __webpack_require__(24);\n\t\n\tvar _urlPattern2 = _interopRequireDefault(_urlPattern);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (routes) {\n\t var routeDictionary = Object.keys(routes).map(function (route) {\n\t return {\n\t route: route,\n\t pattern: new _urlPattern2.default(route),\n\t result: routes[route]\n\t };\n\t });\n\t\n\t return function (incomingUrl) {\n\t // Discard query strings\n\t var route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\t\n\t // Find the route that matches the URL\n\t for (var key in routeDictionary) {\n\t if (routeDictionary.hasOwnProperty(key)) {\n\t var storedRoute = routeDictionary[key];\n\t var match = storedRoute.pattern.match(route);\n\t\n\t if (match) {\n\t // Return the matched params and user-defined result object\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t }\n\t }\n\t\n\t return null;\n\t };\n\t};\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0\n\tvar slice = [].slice;\n\t\n\t(function(root, factory) {\n\t if (('function' === \"function\") && (__webpack_require__(25) != null)) {\n\t return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports !== \"undefined\" && exports !== null) {\n\t return module.exports = factory();\n\t } else {\n\t return root.UrlPattern = factory();\n\t }\n\t})(this, function() {\n\t var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n\t escapeForRegex = function(string) {\n\t return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t };\n\t concatMap = function(array, f) {\n\t var i, length, results;\n\t results = [];\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t results = results.concat(f(array[i]));\n\t }\n\t return results;\n\t };\n\t stringConcatMap = function(array, f) {\n\t var i, length, result;\n\t result = '';\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t result += f(array[i]);\n\t }\n\t return result;\n\t };\n\t regexGroupCount = function(regex) {\n\t return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n\t };\n\t keysAndValuesToObject = function(keys, values) {\n\t var i, key, length, object, value;\n\t object = {};\n\t i = -1;\n\t length = keys.length;\n\t while (++i < length) {\n\t key = keys[i];\n\t value = values[i];\n\t if (value == null) {\n\t continue;\n\t }\n\t if (object[key] != null) {\n\t if (!Array.isArray(object[key])) {\n\t object[key] = [object[key]];\n\t }\n\t object[key].push(value);\n\t } else {\n\t object[key] = value;\n\t }\n\t }\n\t return object;\n\t };\n\t P = {};\n\t P.Result = function(value, rest) {\n\t this.value = value;\n\t this.rest = rest;\n\t };\n\t P.Tagged = function(tag, value) {\n\t this.tag = tag;\n\t this.value = value;\n\t };\n\t P.tag = function(tag, parser) {\n\t return function(input) {\n\t var result, tagged;\n\t result = parser(input);\n\t if (result == null) {\n\t return;\n\t }\n\t tagged = new P.Tagged(tag, result.value);\n\t return new P.Result(tagged, result.rest);\n\t };\n\t };\n\t P.regex = function(regex) {\n\t return function(input) {\n\t var matches, result;\n\t matches = regex.exec(input);\n\t if (matches == null) {\n\t return;\n\t }\n\t result = matches[0];\n\t return new P.Result(result, input.slice(result.length));\n\t };\n\t };\n\t P.sequence = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, rest, result, values;\n\t i = -1;\n\t length = parsers.length;\n\t values = [];\n\t rest = input;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(rest);\n\t if (result == null) {\n\t return;\n\t }\n\t values.push(result.value);\n\t rest = result.rest;\n\t }\n\t return new P.Result(values, rest);\n\t };\n\t };\n\t P.pick = function() {\n\t var indexes, parsers;\n\t indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n\t return function(input) {\n\t var array, result;\n\t result = P.sequence.apply(P, parsers)(input);\n\t if (result == null) {\n\t return;\n\t }\n\t array = result.value;\n\t result.value = array[indexes];\n\t return result;\n\t };\n\t };\n\t P.string = function(string) {\n\t var length;\n\t length = string.length;\n\t return function(input) {\n\t if (input.slice(0, length) === string) {\n\t return new P.Result(string, input.slice(length));\n\t }\n\t };\n\t };\n\t P.lazy = function(fn) {\n\t var cached;\n\t cached = null;\n\t return function(input) {\n\t if (cached == null) {\n\t cached = fn();\n\t }\n\t return cached(input);\n\t };\n\t };\n\t P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n\t var endResult, parserResult, rest, results;\n\t rest = input;\n\t results = stringResult ? '' : [];\n\t while (true) {\n\t if (end != null) {\n\t endResult = end(rest);\n\t if (endResult != null) {\n\t break;\n\t }\n\t }\n\t parserResult = parser(rest);\n\t if (parserResult == null) {\n\t break;\n\t }\n\t if (stringResult) {\n\t results += parserResult.value;\n\t } else {\n\t results.push(parserResult.value);\n\t }\n\t rest = parserResult.rest;\n\t }\n\t if (atLeastOneResultRequired && results.length === 0) {\n\t return;\n\t }\n\t return new P.Result(results, rest);\n\t };\n\t P.many1 = function(parser) {\n\t return function(input) {\n\t return P.baseMany(parser, null, false, true, input);\n\t };\n\t };\n\t P.concatMany1Till = function(parser, end) {\n\t return function(input) {\n\t return P.baseMany(parser, end, true, true, input);\n\t };\n\t };\n\t P.firstChoice = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, result;\n\t i = -1;\n\t length = parsers.length;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(input);\n\t if (result != null) {\n\t return result;\n\t }\n\t }\n\t };\n\t };\n\t newParser = function(options) {\n\t var U;\n\t U = {};\n\t U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n\t U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n\t return U.pattern;\n\t }), P.string(options.optionalSegmentEndChar)));\n\t U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n\t U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n\t return U.name;\n\t })));\n\t U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n\t U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n\t return U.escapedChar;\n\t }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n\t U.token = P.lazy(function() {\n\t return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n\t });\n\t U.pattern = P.many1(P.lazy(function() {\n\t return U.token;\n\t }));\n\t return U;\n\t };\n\t defaultOptions = {\n\t escapeChar: '\\\\',\n\t segmentNameStartChar: ':',\n\t segmentValueCharset: 'a-zA-Z0-9-_~ %',\n\t segmentNameCharset: 'a-zA-Z0-9',\n\t optionalSegmentStartChar: '(',\n\t optionalSegmentEndChar: ')',\n\t wildcardChar: '*'\n\t };\n\t baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return baseAstNodeToRegexString(node, segmentValueCharset);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return '(.*?)';\n\t case 'named':\n\t return \"([\" + segmentValueCharset + \"]+)\";\n\t case 'static':\n\t return escapeForRegex(astNode.value);\n\t case 'optional':\n\t return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n\t }\n\t };\n\t astNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (segmentValueCharset == null) {\n\t segmentValueCharset = defaultOptions.segmentValueCharset;\n\t }\n\t return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n\t };\n\t astNodeToNames = function(astNode) {\n\t if (Array.isArray(astNode)) {\n\t return concatMap(astNode, astNodeToNames);\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return ['_'];\n\t case 'named':\n\t return [astNode.value];\n\t case 'static':\n\t return [];\n\t case 'optional':\n\t return astNodeToNames(astNode.value);\n\t }\n\t };\n\t getParam = function(params, key, nextIndexes, sideEffects) {\n\t var index, maxIndex, result, value;\n\t if (sideEffects == null) {\n\t sideEffects = false;\n\t }\n\t value = params[key];\n\t if (value == null) {\n\t if (sideEffects) {\n\t throw new Error(\"no values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t index = nextIndexes[key] || 0;\n\t maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n\t if (index > maxIndex) {\n\t if (sideEffects) {\n\t throw new Error(\"too few values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t result = Array.isArray(value) ? value[index] : value;\n\t if (sideEffects) {\n\t nextIndexes[key] = index + 1;\n\t }\n\t return result;\n\t };\n\t astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n\t var i, length;\n\t if (Array.isArray(astNode)) {\n\t i = -1;\n\t length = astNode.length;\n\t while (++i < length) {\n\t if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, false) != null;\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, false) != null;\n\t case 'static':\n\t return false;\n\t case 'optional':\n\t return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n\t }\n\t };\n\t stringify = function(astNode, params, nextIndexes) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return stringify(node, params, nextIndexes);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, true);\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, true);\n\t case 'static':\n\t return astNode.value;\n\t case 'optional':\n\t if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n\t return stringify(astNode.value, params, nextIndexes);\n\t } else {\n\t return '';\n\t }\n\t }\n\t };\n\t UrlPattern = function(arg1, arg2) {\n\t var groupCount, options, parsed, parser, withoutWhitespace;\n\t if (arg1 instanceof UrlPattern) {\n\t this.isRegex = arg1.isRegex;\n\t this.regex = arg1.regex;\n\t this.ast = arg1.ast;\n\t this.names = arg1.names;\n\t return;\n\t }\n\t this.isRegex = arg1 instanceof RegExp;\n\t if (!(('string' === typeof arg1) || this.isRegex)) {\n\t throw new TypeError('argument must be a regex or a string');\n\t }\n\t if (this.isRegex) {\n\t this.regex = arg1;\n\t if (arg2 != null) {\n\t if (!Array.isArray(arg2)) {\n\t throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n\t }\n\t groupCount = regexGroupCount(this.regex);\n\t if (arg2.length !== groupCount) {\n\t throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n\t }\n\t this.names = arg2;\n\t }\n\t return;\n\t }\n\t if (arg1 === '') {\n\t throw new Error('argument must not be the empty string');\n\t }\n\t withoutWhitespace = arg1.replace(/\\s+/g, '');\n\t if (withoutWhitespace !== arg1) {\n\t throw new Error('argument must not contain whitespace');\n\t }\n\t options = {\n\t escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n\t segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n\t segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n\t segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n\t optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n\t optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n\t wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n\t };\n\t parser = newParser(options);\n\t parsed = parser.pattern(arg1);\n\t if (parsed == null) {\n\t throw new Error(\"couldn't parse pattern\");\n\t }\n\t if (parsed.rest !== '') {\n\t throw new Error(\"could only partially parse pattern\");\n\t }\n\t this.ast = parsed.value;\n\t this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n\t this.names = astNodeToNames(this.ast);\n\t };\n\t UrlPattern.prototype.match = function(url) {\n\t var groups, match;\n\t match = this.regex.exec(url);\n\t if (match == null) {\n\t return null;\n\t }\n\t groups = match.slice(1);\n\t if (this.names) {\n\t return keysAndValuesToObject(this.names, groups);\n\t } else {\n\t return groups;\n\t }\n\t };\n\t UrlPattern.prototype.stringify = function(params) {\n\t if (params == null) {\n\t params = {};\n\t }\n\t if (this.isRegex) {\n\t throw new Error(\"can't stringify patterns generated from a regex\");\n\t }\n\t if (params !== Object(params)) {\n\t throw new Error(\"argument must be an object or undefined\");\n\t }\n\t return stringify(this.ast, params, {});\n\t };\n\t UrlPattern.escapeForRegex = escapeForRegex;\n\t UrlPattern.concatMap = concatMap;\n\t UrlPattern.stringConcatMap = stringConcatMap;\n\t UrlPattern.regexGroupCount = regexGroupCount;\n\t UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n\t UrlPattern.P = P;\n\t UrlPattern.newParser = newParser;\n\t UrlPattern.defaultOptions = defaultOptions;\n\t UrlPattern.astNodeToRegexString = astNodeToRegexString;\n\t UrlPattern.astNodeToNames = astNodeToNames;\n\t UrlPattern.getParam = getParam;\n\t UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n\t UrlPattern.stringify = stringify;\n\t return UrlPattern;\n\t});\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;\r\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, {}))\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\texports.default = function () {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (action.type === _actionTypes.LOCATION_CHANGED) {\n\t // No-op the initial route action\n\t if (state && state.pathname === action.payload.pathname) {\n\t return state;\n\t }\n\t\n\t return _extends({}, action.payload, {\n\t previous: state.current\n\t });\n\t }\n\t return state;\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var _ref$pathname = _ref.pathname;\n\t var pathname = _ref$pathname === undefined ? '/' : _ref$pathname;\n\t var _ref$query = _ref.query;\n\t var query = _ref$query === undefined ? {} : _ref$query;\n\t var routes = _ref.routes;\n\t var history = _ref.history;\n\t return _extends({}, history.createLocation({\n\t pathname: pathname,\n\t query: query\n\t }), (0, _createMatcher2.default)(routes)(pathname));\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\texports.default = function (_ref) {\n\t var store = _ref.store;\n\t return function (ComposedComponent) {\n\t var RouterProvider = function (_Component) {\n\t _inherits(RouterProvider, _Component);\n\t\n\t function RouterProvider(props) {\n\t _classCallCheck(this, RouterProvider);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RouterProvider).call(this, props));\n\t\n\t _this.router = { store: store };\n\t return _this;\n\t }\n\t\n\t _createClass(RouterProvider, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t router: this.router\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children']); // eslint-disable-line no-unused-vars\n\t\n\t\n\t return _react2.default.createElement(ComposedComponent, rest);\n\t }\n\t }]);\n\t\n\t return RouterProvider;\n\t }(_react.Component);\n\t\n\t RouterProvider.childContextTypes = {\n\t router: _react.PropTypes.object\n\t };\n\t\n\t RouterProvider.propTypes = {\n\t children: _react.PropTypes.node\n\t };\n\t\n\t return RouterProvider;\n\t };\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_29__;\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.PersistentQueryLink = exports.Link = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar LEFT_MOUSE_BUTTON = 0;\n\t\n\tvar normalizeHref = function normalizeHref(location) {\n\t return '' + (location.basename || '') + location.pathname;\n\t};\n\t\n\tvar normalizeLocation = function normalizeLocation(href) {\n\t if (typeof href === 'string') {\n\t var pathnameAndQuery = href.split('?');\n\t var pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n\t var query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n\t return query ? { pathname: pathname, search: '?' + query } : { pathname: pathname };\n\t }\n\t return href;\n\t};\n\t\n\tvar resolveQueryForLocation = function resolveQueryForLocation(_ref) {\n\t var linkLocation = _ref.linkLocation;\n\t var persistQuery = _ref.persistQuery;\n\t var currentLocation = _ref.currentLocation;\n\t\n\t var currentQuery = currentLocation && currentLocation.query;\n\t\n\t // Only use the query from state if it exists\n\t // and the href doesn't provide its own query\n\t if (persistQuery && currentQuery && !linkLocation.search && !linkLocation.query) {\n\t return {\n\t pathname: linkLocation.pathname,\n\t query: currentQuery\n\t };\n\t }\n\t\n\t return linkLocation;\n\t};\n\t\n\tvar isNotLeftClick = function isNotLeftClick(e) {\n\t return e.button && e.button !== LEFT_MOUSE_BUTTON;\n\t};\n\tvar hasModifier = function hasModifier(e) {\n\t return Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\t};\n\t\n\tvar _onClick = function _onClick(_ref2) {\n\t var e = _ref2.e;\n\t var target = _ref2.target;\n\t var location = _ref2.location;\n\t var replaceState = _ref2.replaceState;\n\t var router = _ref2.router;\n\t\n\t if (hasModifier(e) || isNotLeftClick(e) || target) {\n\t return;\n\t }\n\t\n\t e.preventDefault();\n\t\n\t if (router) {\n\t router.store.dispatch({\n\t type: replaceState ? _actionTypes.REPLACE : _actionTypes.PUSH,\n\t payload: location\n\t });\n\t }\n\t};\n\t\n\tvar Link = function Link(props, context) {\n\t var href = props.href;\n\t var target = props.target;\n\t var persistQuery = props.persistQuery;\n\t var replaceState = props.replaceState;\n\t var children = props.children;\n\t var router = context.router;\n\t\n\t\n\t var locationDescriptor = resolveQueryForLocation({\n\t linkLocation: normalizeLocation(href),\n\t currentLocation: router.store.getState().router,\n\t persistQuery: persistQuery\n\t });\n\t\n\t var location = router.store.history.createLocation(locationDescriptor);\n\t\n\t return _react2.default.createElement(\n\t 'a',\n\t {\n\t className: props.className,\n\t style: props.style,\n\t href: normalizeHref(location),\n\t onClick: function onClick(e) {\n\t return _onClick({\n\t e: e,\n\t target: target,\n\t location: location,\n\t replaceState: replaceState,\n\t router: router\n\t });\n\t }\n\t },\n\t children\n\t );\n\t};\n\t\n\tLink.propTypes = {\n\t href: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.object]),\n\t replaceState: _react.PropTypes.bool,\n\t persistQuery: _react.PropTypes.bool,\n\t target: _react.PropTypes.string,\n\t className: _react.PropTypes.string,\n\t style: _react.PropTypes.object,\n\t children: _react.PropTypes.node\n\t};\n\t\n\tLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar PersistentQueryLink = function (_Component) {\n\t _inherits(PersistentQueryLink, _Component);\n\t\n\t function PersistentQueryLink() {\n\t _classCallCheck(this, PersistentQueryLink);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(PersistentQueryLink).apply(this, arguments));\n\t }\n\t\n\t _createClass(PersistentQueryLink, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children']);\n\t\n\t return _react2.default.createElement(\n\t Link,\n\t _extends({}, rest, { persistQuery: true }),\n\t children\n\t );\n\t }\n\t }]);\n\t\n\t return PersistentQueryLink;\n\t}(_react.Component);\n\t\n\tPersistentQueryLink.propTypes = {\n\t children: _react.PropTypes.node\n\t};\n\t\n\tPersistentQueryLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.Link = Link;\n\texports.PersistentQueryLink = PersistentQueryLink;\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Fragment = function Fragment(props, context) {\n\t var forRoute = props.forRoute;\n\t var forRoutes = props.forRoutes;\n\t var withConditions = props.withConditions;\n\t var children = props.children;\n\t var store = context.router.store;\n\t var matchRoute = store.matchRoute;\n\t\n\t var _store$getState = store.getState();\n\t\n\t var location = _store$getState.router;\n\t\n\t\n\t if (forRoute && matchRoute(location.pathname).route !== forRoute) {\n\t return null;\n\t }\n\t\n\t if (forRoutes) {\n\t var anyMatch = forRoutes.some(function (route) {\n\t return matchRoute(location.pathname).route === route;\n\t });\n\t\n\t if (!anyMatch) {\n\t return null;\n\t }\n\t }\n\t\n\t if (withConditions && !withConditions(location)) {\n\t return null;\n\t }\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t children\n\t );\n\t};\n\t\n\tFragment.propTypes = {\n\t forRoute: _react.PropTypes.string,\n\t forRoutes: _react.PropTypes.arrayOf(_react.PropTypes.string),\n\t withConditions: _react.PropTypes.func,\n\t children: _react.PropTypes.node\n\t};\n\t\n\tFragment.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.default = Fragment;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** redux-little-router.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 5255a76693118b9cafbf\n **/","import createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport Fragment from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","import createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\nimport initialRouterState from './initial-router-state';\n\nexport const locationDidChange = ({ location, matchRoute }) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = location => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\nexport default ({\n routes,\n pathname,\n query,\n basename = '',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}) => {\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return createStore => (reducer, initialState, enhancer) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = {...state};\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...reducer(vanillaState, action),\n router: routerReducer(state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query, routes, history\n }\n )} : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {...store, dispatch, history, matchRoute};\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-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'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 invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { 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/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\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 ? \"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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","/**\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'use strict';\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 = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\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}\n\nmodule.exports = warning;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 8\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 13\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 14\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 16\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\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 return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 17\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\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 newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn key;\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().sort().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 21\n ** module chunks = 0\n **/","export const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","import UrlPattern from 'url-pattern';\n\nexport default routes => {\n const routeDictionary = Object.keys(routes).map(route => ({\n route,\n pattern: new UrlPattern(route),\n result: routes[route]\n }));\n\n return incomingUrl => {\n // Discard query strings\n const route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\n // Find the route that matches the URL\n for (const key in routeDictionary) {\n if (routeDictionary.hasOwnProperty(key)) {\n const storedRoute = routeDictionary[key];\n const match = storedRoute.pattern.match(route);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n }\n\n return null;\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 24\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 25\n ** module chunks = 0\n **/","import { LOCATION_CHANGED } from './action-types';\n\nexport default (state = {}, action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n return {\n ...action.payload,\n previous: state.current\n };\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","import createMatcher from './create-matcher';\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./initial-router-state.js\n **/","import React, { Component, PropTypes } from 'react';\n\nexport default ({ store }) => ComposedComponent => {\n class RouterProvider extends Component {\n constructor(props) {\n super(props);\n this.router = { store };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n render() {\n const { children, ...rest } = this.props; // eslint-disable-line no-unused-vars\n return ;\n }\n }\n\n RouterProvider.childContextTypes = {\n router: PropTypes.object\n };\n\n RouterProvider.propTypes = {\n children: PropTypes.node\n };\n\n return RouterProvider;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_29__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 29\n ** module chunks = 0\n **/","import React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst onClick = ({e, target, location, replaceState, router}) => {\n if (hasModifier(e) || isNotLeftClick(e) || target) {\n return;\n }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (props, context) => {\n const {\n href,\n target,\n persistQuery,\n replaceState,\n children\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n onClick({\n e,\n target,\n location,\n replaceState,\n router\n })}\n >\n {children}\n \n );\n};\n\nLink.propTypes = {\n href: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n replaceState: PropTypes.bool,\n persistQuery: PropTypes.bool,\n target: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.node\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","import React, { PropTypes } from 'react';\n\nconst Fragment = (props, context) => {\n const { forRoute, forRoutes, withConditions, children } = props;\n const { store } = context.router;\n const { matchRoute } = store;\n const { router: location } = store.getState();\n\n if (\n forRoute &&\n matchRoute(location.pathname).route !== forRoute\n ) {\n return null;\n }\n\n if (forRoutes) {\n const anyMatch = forRoutes.some(route =>\n matchRoute(location.pathname).route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nFragment.propTypes = {\n forRoute: PropTypes.string,\n forRoutes: PropTypes.arrayOf(PropTypes.string),\n withConditions: PropTypes.func,\n children: PropTypes.node\n};\n\nFragment.contextTypes = {\n router: PropTypes.object\n};\n\nexport default Fragment;\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index a2c0a704..95873bab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redux-little-router", - "version": "7.0.0", + "version": "7.0.1", "description": "A barebones routing solution for Redux applications.", "main": "lib/index.js", "scripts": {