main.js.map 440 KB

1
  1. {"version":3,"sources":["webpack:///webpack/bootstrap cfd11b9af82cc4a32488","webpack:///external \"path\"","webpack:///external \"fs\"","webpack:///external \"electron\"","webpack:///./app/node_modules/source-map/lib/util.js","webpack:///./app/src/helpers/helpers.js","webpack:///./app/node_modules/source-map/lib/source-map-generator.js","webpack:///./app/node_modules/source-map/lib/base64-vlq.js","webpack:///./app/node_modules/source-map/lib/array-set.js","webpack:///./app/node_modules/electron-dl/index.js","webpack:///./app/node_modules/graceful-fs/fs.js","webpack:///./app/node_modules/loglevel/lib/loglevel.js","webpack:///./app/src/main.js","webpack:///./app/node_modules/source-map-support/register.js","webpack:///./app/node_modules/source-map-support/source-map-support.js","webpack:///./app/node_modules/source-map/source-map.js","webpack:///./app/node_modules/source-map/lib/base64.js","webpack:///./app/node_modules/source-map/lib/mapping-list.js","webpack:///./app/node_modules/source-map/lib/source-map-consumer.js","webpack:///./app/node_modules/source-map/lib/binary-search.js","webpack:///./app/node_modules/source-map/lib/quick-sort.js","webpack:///./app/node_modules/source-map/lib/source-node.js","webpack:///./app/node_modules/buffer-from/index.js","webpack:///external \"module\"","webpack:///./app/node_modules/unused-filename/index.js","webpack:///./app/node_modules/path-exists/index.js","webpack:///./app/node_modules/modify-filename/index.js","webpack:///./app/node_modules/pupa/index.js","webpack:///./app/node_modules/ext-name/index.js","webpack:///./app/node_modules/ext-list/index.js","webpack:///./app/node_modules/mime-db/index.js","webpack:///./app/node_modules/mime-db/db.json","webpack:///./app/node_modules/sort-keys-length/index.js","webpack:///./app/node_modules/sort-keys/index.js","webpack:///./app/node_modules/is-plain-obj/index.js","webpack:///./app/src/components/login/loginWindow.js","webpack:///./app/src/components/mainWindow/mainWindow.js","webpack:///./app/node_modules/electron-window-state/index.js","webpack:///./app/node_modules/jsonfile/index.js","webpack:///./app/node_modules/graceful-fs/graceful-fs.js","webpack:///./app/node_modules/graceful-fs/polyfills.js","webpack:///external \"constants\"","webpack:///./app/node_modules/graceful-fs/legacy-streams.js","webpack:///external \"stream\"","webpack:///external \"util\"","webpack:///external \"assert\"","webpack:///./app/node_modules/mkdirp/index.js","webpack:///./app/node_modules/deep-equal/index.js","webpack:///./app/node_modules/deep-equal/lib/keys.js","webpack:///./app/node_modules/deep-equal/lib/is_arguments.js","webpack:///./app/src/components/mainWindow/mainWindowHelpers.js","webpack:///./app/node_modules/wurl/wurl.js","webpack:///external \"os\"","webpack:///./app/src/components/menu/menu.js","webpack:///./app/src/components/contextMenu/contextMenu.js","webpack:///./app/node_modules/electron-context-menu/index.js","webpack:///./app/node_modules/electron-is-dev/index.js","webpack:///./app/src/components/trayIcon/trayIcon.js","webpack:///./app/src/helpers/inferFlash.js"],"names":["INJECT_CSS_PATH","path","join","__dirname","log","require","isOSX","os","platform","isLinux","isWindows","linkIsInternal","currentUrl","newUrl","internalUrlRegex","regex","RegExp","test","currentDomain","newDomain","shouldInjectCss","fs","accessSync","F_OK","e","getCssToInject","readFileSync","toString","debugLog","browserWindow","message","setTimeout","webContents","send","info","getAppIcon","nativeTabsSupported","getCounterValue","title","itemCountRegex","match","exec","undefined","helpers","APP_ARGS_FILE_PATH","appArgs","JSON","parse","fileDownloadOptions","Object","assign","processEnvs","keys","forEach","key","process","env","mainWindow","flashPluginDir","app","commandLine","appendSwitch","flashPath","ignoreCertificate","disableGpu","disableHardwareAcceleration","ignoreGpuBlacklist","enableEs3Apis","diskCacheSize","basicAuthUsername","basicAuthPassword","setDockBadge","currentBadgeCount","count","bounce","dock","setBadge","on","fastQuit","quit","event","hasVisibleWindows","show","exit","crashReporter","start","companyName","productName","name","submitURL","uploadToServer","emit","request","authInfo","callback","preventDefault","singleInstance","shouldQuit","makeSingleInstance","isVisible","isMinimized","restore","focus","createLoginWindow","loginCallback","loginWindow","BrowserWindow","width","height","frame","resizable","loadURL","ipcMain","once","usernameAndPassword","close","onNewWindowHelper","mainWindowHelpers","ZOOM_INTERVAL","maybeHideWindow","window","tray","hide","maybeInjectCss","cssToInject","injectCss","insertCSS","removeListener","createMainWindow","inpOptions","onAppQuit","options","mainWindowState","defaultWidth","defaultHeight","DEFAULT_WINDOW_OPTIONS","tabbingIdentifier","webPreferences","javascript","plugins","nodeIntegration","webSecurity","insecure","preload","zoomFactor","zoom","hideWindowFrame","minWidth","minHeight","maxWidth","maxHeight","x","y","autoHideMenuBar","showMenuBar","icon","fullscreen","fullScreen","alwaysOnTop","titleBarStyle","manage","maximize","writeFileSync","stringify","withFocusedWindow","block","focusedWindow","getFocusedWindow","adjustWindowZoom","adjustment","getZoomFactor","setZoomFactor","onZoomIn","onZoomOut","onZoomReset","clearAppData","dialog","showMessageBox","type","buttons","defaultId","response","session","clearStorageData","clearCache","targetUrl","onGoBack","goBack","onGoForward","goForward","getCurrentUrl","getURL","onWillNavigate","urlToGo","internalUrls","shell","openExternal","createNewWindow","createNewTab","url","foreground","newTab","addTabbedWindow","createAboutBlankWindow","onNewWindow","_","disposition","newGuest","sendParamsOnDidFinishLoad","userAgent","setUserAgent","menuOptions","nativefierVersion","appQuit","zoomIn","zoomOut","zoomReset","zoomBuildTimeValue","disableDevTools","disableContextMenu","counter","counterValue","isFocused","isFullScreen","moveTabToNewWindow","setFullScreen","bind","newWindow","createMenu","Menu","getApplicationMenu","zoomResetLabel","template","label","submenu","accelerator","role","click","currentURL","clipboard","writeText","item","reload","toggleDevTools","splice","length","unshift","push","menu","buildFromTemplate","setApplicationMenu","initContextMenu","prepend","params","items","linkURL","Tray","nativeImage","createTrayIcon","iconPath","nimage","createFromPath","appIcon","onClick","contextMenu","setHighlightMode","setToolTip","setContextMenu","findSync","pattern","basePath","findDir","matches","findSyncRecurse","base","children","readdirSync","exception","code","child","childPath","childIsDirectory","lstatSync","isDirectory","patternMatches","linuxMatch","windowsMatch","darwinMatch","inferFlash","warn"],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;AC7DA,iC;;;;;;ACAA,+B;;;;;;ACAA,qC;;;;;;ACAA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;ACveA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,IAAMA,kBAAkBC,eAAKC,IAAL,CAAUC,SAAV,EAAqB,IAArB,EAA2B,mBAA3B,CAAxB;AACA,IAAMC,MAAM,mBAAAC,CAAQ,EAAR,CAAZ;;AAEA,SAASC,KAAT,GAAiB;AACf,SAAOC,aAAGC,QAAH,OAAkB,QAAzB;AACD;;AAED,SAASC,OAAT,GAAmB;AACjB,SAAOF,aAAGC,QAAH,OAAkB,OAAzB;AACD;;AAED,SAASE,SAAT,GAAqB;AACnB,SAAOH,aAAGC,QAAH,OAAkB,OAAzB;AACD;;AAED,SAASG,cAAT,CAAwBC,UAAxB,EAAoCC,MAApC,EAA4CC,gBAA5C,EAA8D;AAC5D,MAAID,WAAW,aAAf,EAA8B;AAC5B,WAAO,IAAP;AACD;;AAED,MAAIC,gBAAJ,EAAsB;AACpB,QAAMC,QAAQC,OAAOF,gBAAP,CAAd;AACA,WAAOC,MAAME,IAAN,CAAWJ,MAAX,CAAP;AACD;;AAED,MAAMK,gBAAgB,oBAAK,QAAL,EAAeN,UAAf,CAAtB;AACA,MAAMO,YAAY,oBAAK,QAAL,EAAeN,MAAf,CAAlB;AACA,SAAOK,kBAAkBC,SAAzB;AACD;;AAED,SAASC,eAAT,GAA2B;AACzB,MAAI;AACFC,iBAAGC,UAAH,CAActB,eAAd,EAA+BqB,aAAGE,IAAlC;AACA,WAAO,IAAP;AACD,GAHD,CAGE,OAAOC,CAAP,EAAU;AACV,WAAO,KAAP;AACD;AACF;;AAED,SAASC,cAAT,GAA0B;AACxB,SAAOJ,aAAGK,YAAH,CAAgB1B,eAAhB,EAAiC2B,QAAjC,EAAP;AACD;;AAED;;;;;AAKA,SAASC,QAAT,CAAkBC,aAAlB,EAAiCC,OAAjC,EAA0C;AACxC;AACAC,aAAW,YAAM;AACfF,kBAAcG,WAAd,CAA0BC,IAA1B,CAA+B,OAA/B,EAAwCH,OAAxC;AACD,GAFD,EAEG,IAFH;AAGA1B,MAAI8B,IAAJ,CAASJ,OAAT;AACD;;AAED,SAASK,UAAT,GAAsB;AACpB,SAAOlC,eAAKC,IAAL,CAAUC,SAAV,EAAqB,KAArB,EAA6B,SAAQO,cAAc,KAAd,GAAsB,KAAM,EAAjE,CAAP;AACD;;AAED,SAAS0B,mBAAT,GAA+B;AAC7B,SAAO9B,OAAP;AACD;;AAED,SAAS+B,eAAT,CAAyBC,KAAzB,EAAgC;AAC9B,MAAMC,iBAAiB,yBAAvB;AACA,MAAMC,QAAQD,eAAeE,IAAf,CAAoBH,KAApB,CAAd;AACA,SAAOE,QAAQA,MAAM,CAAN,CAAR,GAAmBE,SAA1B;AACD;;kBAEc;AACbpC,OADa;AAEbG,SAFa;AAGbC,WAHa;AAIbC,gBAJa;AAKbc,gBALa;AAMbG,UANa;AAObR,iBAPa;AAQbe,YARa;AASbC,qBATa;AAUbC;AAVa,C;;;;;;AC3Ef,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,SAAS;AACnD;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxaA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;;;;;;AC3IA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACxHA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,WAAW;;AAElB;AACA;;AAEA;AACA;AACA;;AAEA,WAAW,KAAK,GAAG,YAAY;AAC/B;;AAEA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,KAAK,gBAAgB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,iEAAiE,SAAS;AAC1E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ,wCAAwC,6BAA6B;AACrE;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA,EAAE;AACF;;AAEA;AACA,2BAA2B,YAAY,yBAAyB;;AAEhE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA,CAAC;;;;;;;;AChJD;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,qEAAqE;AACrE,WAAW;AACX;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAC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ACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,YAAY,kBAAkB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D,gCAAgC,EAAE;AAC5F,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,oCAAoC,wBAAwB;AAC5D,sCAAsC,sBAAsB;AAC5D,wCAAwC,4BAA4B;AACpE,iDAAiD,wBAAwB;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC,eAAe;AACrD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2FAA2F,oBAAoB;AAC/G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;ACxiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;;AAEhB,mBAAmB;AACnB,oBAAoB;;AAEpB,gBAAgB;AAChB,gBAAgB;;AAEhB,gBAAgB;AAChB,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AClEA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9EA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,kCAAkC;AAC/C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wCAAwC;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,mBAAmB,EAAE;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+CAA+C;AACpE;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA,qBAAqB,4BAA4B;AACjD;;AAEA;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;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACxnCA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC9GA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA,WAAW,SAAS;AACpB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;;;;;;ACjHA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH,UAAU;AACV;;AAEA;;;;;;;AC5ZA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACpEA,mC;;;;;;;ACAA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,SAAS,IAAI,IAAI,GAAG,IAAI;AAC/E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;AChBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA,sEAAsE,WAAW;AACjF;;AAEA;AACA,8EAA8E,YAAY;AAC1F;;AAEA,cAAc,MAAM;;AAEpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;;;;;;;ACrBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;;;;;;;AC9BA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AAC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qB,KAArB,EAA2BzK,UAA3B,EAAuCuB,KAAvC,EAA8CmD,QAAQrD,QAAtD,CAFF;AAID;AACDyC,oBAAgB9D,UAAhB,EAA4BuB,KAA5B,EAAmCmD,QAAQrD,QAA3C,EAAqDqD,QAAQV,IAA7D;AACD,GAZD;;AAcA,SAAOhE,UAAP;AACD;;kBAEcuE,gB;;;;;;;AC9Vf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sEAAsE,aAAa;AACnF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,aAAa,gBAAgB,EAAE;AAC/B,aAAa,gBAAgB,EAAE;AAC/B,iBAAiB,oBAAoB,EAAE;AACvC,kBAAkB,qBAAqB,EAAE;AACzC,uBAAuB,0BAA0B,EAAE;AACnD,wBAAwB,2BAA2B,EAAE;AACrD;AACA;AACA;AACA;AACA;;;;;;;AC7KA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpIA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,iCAAiC;AACjC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrQA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,yCAAyC;AACzC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACzUA,sC;;;;;;ACAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;;AAEA;;AAEA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;;AAEA;;AAEA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrHA,mC;;;;;;ACAA,iC;;;;;;ACAA,mC;;;;;;ACAA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACjGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;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Y;AACnB,UAAMC,QAAQ,EAAd;AACA,UAAID,OAAOE,OAAX,EAAoB;AAClBD,cAAMP,IAAN,CAAW;AACTd,iBAAO,8BADE;AAETI,iBAAO,iBAAM;AACX1C,4BAAMC,YAAN,CAAmByD,OAAOE,OAA1B;AACD;AAJQ,SAAX;AAMAD,cAAMP,IAAN,CAAW;AACTd,iBAAO,yBADE;AAETI,iBAAO,iBAAM;AACXxC,4BAAgBwD,OAAOE,OAAvB;AACD;AAJQ,SAAX;AAMA,YAAIzD,YAAJ,EAAkB;AAChBwD,gBAAMP,IAAN,CAAW;AACTd,mBAAO,sBADE;AAETI,mBAAO,iBAAM;AACXvC,2BAAauD,OAAOE,OAApB,EAA6B,KAA7B;AACD;AAJQ,WAAX;AAMD;AACF;AACD,aAAOD,KAAP;AACD;AA1BS,GAAZ;AA4BD;;kBAEcH,e;;;;;;;AClCf;AACA;AACA,OAAO,SAAS;AAChB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,KAAK;;AAE3C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;;AAEH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;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","file":"main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap cfd11b9af82cc4a32488","module.exports = require(\"path\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"path\"\n// module id = 0\n// module chunks = 0","module.exports = require(\"fs\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"fs\"\n// module id = 1\n// module chunks = 0","module.exports = require(\"electron\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"electron\"\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/util.js\n// module id = 3\n// module chunks = 0","import wurl from 'wurl';\nimport os from 'os';\nimport fs from 'fs';\nimport path from 'path';\n\nconst INJECT_CSS_PATH = path.join(__dirname, '..', 'inject/inject.css');\nconst log = require('loglevel');\n\nfunction isOSX() {\n return os.platform() === 'darwin';\n}\n\nfunction isLinux() {\n return os.platform() === 'linux';\n}\n\nfunction isWindows() {\n return os.platform() === 'win32';\n}\n\nfunction linkIsInternal(currentUrl, newUrl, internalUrlRegex) {\n if (newUrl === 'about:blank') {\n return true;\n }\n\n if (internalUrlRegex) {\n const regex = RegExp(internalUrlRegex);\n return regex.test(newUrl);\n }\n\n const currentDomain = wurl('domain', currentUrl);\n const newDomain = wurl('domain', newUrl);\n return currentDomain === newDomain;\n}\n\nfunction shouldInjectCss() {\n try {\n fs.accessSync(INJECT_CSS_PATH, fs.F_OK);\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction getCssToInject() {\n return fs.readFileSync(INJECT_CSS_PATH).toString();\n}\n\n/**\n * Helper method to print debug messages from the main process in the browser window\n * @param {BrowserWindow} browserWindow\n * @param message\n */\nfunction debugLog(browserWindow, message) {\n // need the timeout as it takes time for the preload javascript to be loaded in the window\n setTimeout(() => {\n browserWindow.webContents.send('debug', message);\n }, 3000);\n log.info(message);\n}\n\nfunction getAppIcon() {\n return path.join(__dirname, '../', `/icon.${isWindows() ? 'ico' : 'png'}`);\n}\n\nfunction nativeTabsSupported() {\n return isOSX();\n}\n\nfunction getCounterValue(title) {\n const itemCountRegex = /[([{]([\\d.,]*)\\+?[}\\])]/;\n const match = itemCountRegex.exec(title);\n return match ? match[1] : undefined;\n}\n\nexport default {\n isOSX,\n isLinux,\n isWindows,\n linkIsInternal,\n getCssToInject,\n debugLog,\n shouldInjectCss,\n getAppIcon,\n nativeTabsSupported,\n getCounterValue,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./app/src/helpers/helpers.js","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/source-map-generator.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/base64-vlq.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/array-set.js\n// module id = 7\n// module chunks = 0","'use strict';\nconst path = require('path');\nconst electron = require('electron');\nconst unusedFilename = require('unused-filename');\nconst pupa = require('pupa');\nconst extName = require('ext-name');\n\nconst {app, shell} = electron;\n\nfunction getFilenameFromMime(name, mime) {\n\tconst exts = extName.mime(mime);\n\n\tif (exts.length !== 1) {\n\t\treturn name;\n\t}\n\n\treturn `${name}.${exts[0].ext}`;\n}\n\nfunction registerListener(session, options, cb = () => {}) {\n\tconst downloadItems = new Set();\n\tlet receivedBytes = 0;\n\tlet completedBytes = 0;\n\tlet totalBytes = 0;\n\tconst activeDownloadItems = () => downloadItems.size;\n\tconst progressDownloadItems = () => receivedBytes / totalBytes;\n\n\toptions = Object.assign({\n\t\tshowBadge: true\n\t}, options);\n\n\tconst listener = (e, item, webContents) => {\n\t\tdownloadItems.add(item);\n\t\ttotalBytes += item.getTotalBytes();\n\n\t\tlet hostWebContents = webContents;\n\t\tif (webContents.getType() === 'webview') {\n\t\t\t({hostWebContents} = webContents);\n\t\t}\n\t\tconst win = electron.BrowserWindow.fromWebContents(hostWebContents);\n\n\t\tconst dir = options.directory || app.getPath('downloads');\n\t\tlet filePath;\n\t\tif (options.filename) {\n\t\t\tfilePath = path.join(dir, options.filename);\n\t\t} else {\n\t\t\tconst filename = item.getFilename();\n\t\t\tconst name = path.extname(filename) ? filename : getFilenameFromMime(filename, item.getMimeType());\n\n\t\t\tfilePath = unusedFilename.sync(path.join(dir, name));\n\t\t}\n\n\t\tconst errorMessage = options.errorMessage || 'The download of {filename} was interrupted';\n\t\tconst errorTitle = options.errorTitle || 'Download Error';\n\n\t\tif (!options.saveAs) {\n\t\t\titem.setSavePath(filePath);\n\t\t}\n\n\t\tif (typeof options.onStarted === 'function') {\n\t\t\toptions.onStarted(item);\n\t\t}\n\n\t\titem.on('updated', () => {\n\t\t\treceivedBytes = [...downloadItems].reduce((receivedBytes, item) => {\n\t\t\t\treceivedBytes += item.getReceivedBytes();\n\t\t\t\treturn receivedBytes;\n\t\t\t}, completedBytes);\n\n\t\t\tif (options.showBadge && ['darwin', 'linux'].includes(process.platform)) {\n\t\t\t\tapp.setBadgeCount(activeDownloadItems());\n\t\t\t}\n\n\t\t\tif (!win.isDestroyed()) {\n\t\t\t\twin.setProgressBar(progressDownloadItems());\n\t\t\t}\n\n\t\t\tif (typeof options.onProgress === 'function') {\n\t\t\t\toptions.onProgress(progressDownloadItems());\n\t\t\t}\n\t\t});\n\n\t\titem.on('done', (e, state) => {\n\t\t\tcompletedBytes += item.getTotalBytes();\n\t\t\tdownloadItems.delete(item);\n\n\t\t\tif (options.showBadge && ['darwin', 'linux'].includes(process.platform)) {\n\t\t\t\tapp.setBadgeCount(activeDownloadItems());\n\t\t\t}\n\n\t\t\tif (!win.isDestroyed() && !activeDownloadItems()) {\n\t\t\t\twin.setProgressBar(-1);\n\t\t\t\treceivedBytes = 0;\n\t\t\t\tcompletedBytes = 0;\n\t\t\t\ttotalBytes = 0;\n\t\t\t}\n\n\t\t\tif (options.unregisterWhenDone) {\n\t\t\t\tsession.removeListener('will-download', listener);\n\t\t\t}\n\n\t\t\tif (state === 'cancelled') {\n\t\t\t\tif (typeof options.onCancel === 'function') {\n\t\t\t\t\toptions.onCancel(item);\n\t\t\t\t}\n\t\t\t} else if (state === 'interrupted') {\n\t\t\t\tconst message = pupa(errorMessage, {filename: item.getFilename()});\n\t\t\t\telectron.dialog.showErrorBox(errorTitle, message);\n\t\t\t\tcb(new Error(message));\n\t\t\t} else if (state === 'completed') {\n\t\t\t\tif (process.platform === 'darwin') {\n\t\t\t\t\tapp.dock.downloadFinished(filePath);\n\t\t\t\t}\n\n\t\t\t\tif (options.openFolderWhenDone) {\n\t\t\t\t\tshell.showItemInFolder(path.join(dir, item.getFilename()));\n\t\t\t\t}\n\n\t\t\t\tcb(null, item);\n\t\t\t}\n\t\t});\n\t};\n\n\tsession.on('will-download', listener);\n}\n\nmodule.exports = (options = {}) => {\n\tapp.on('session-created', session => {\n\t\tregisterListener(session, options);\n\t});\n};\n\nmodule.exports.download = (win, url, options) => new Promise((resolve, reject) => {\n\toptions = Object.assign({}, options, {unregisterWhenDone: true});\n\n\tregisterListener(win.webContents.session, options, (err, item) => {\n\t\tif (err) {\n\t\t\treject(err);\n\t\t} else {\n\t\t\tresolve(item);\n\t\t}\n\t});\n\n\twin.webContents.downloadURL(url);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/electron-dl/index.js\n// module id = 8\n// module chunks = 0","'use strict'\n\nvar fs = require('fs')\n\nmodule.exports = clone(fs)\n\nfunction clone (obj) {\n if (obj === null || typeof obj !== 'object')\n return obj\n\n if (obj instanceof Object)\n var copy = { __proto__: obj.__proto__ }\n else\n var copy = Object.create(null)\n\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n })\n\n return copy\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/graceful-fs/fs.js\n// module id = 9\n// module chunks = 0","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n var storageKey = \"loglevel\";\n if (name) {\n storageKey += \":\" + name;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n return defaultLogger;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/loglevel/lib/loglevel.js\n// module id = 10\n// module chunks = 0","import 'source-map-support/register';\nimport fs from 'fs';\nimport path from 'path';\nimport { app, crashReporter } from 'electron';\nimport electronDownload from 'electron-dl';\n\nimport createLoginWindow from './components/login/loginWindow';\nimport createMainWindow from './components/mainWindow/mainWindow';\nimport createTrayIcon from './components/trayIcon/trayIcon';\nimport helpers from './helpers/helpers';\nimport inferFlash from './helpers/inferFlash';\n\nconst { isOSX } = helpers;\n\nconst APP_ARGS_FILE_PATH = path.join(__dirname, '..', 'nativefier.json');\nconst appArgs = JSON.parse(fs.readFileSync(APP_ARGS_FILE_PATH, 'utf8'));\n\nconst fileDownloadOptions = Object.assign({}, appArgs.fileDownloadOptions);\nelectronDownload(fileDownloadOptions);\n\nif (appArgs.processEnvs) {\n Object.keys(appArgs.processEnvs).forEach((key) => {\n /* eslint-env node */\n process.env[key] = appArgs.processEnvs[key];\n });\n}\n\nlet mainWindow;\n\nif (typeof appArgs.flashPluginDir === 'string') {\n app.commandLine.appendSwitch('ppapi-flash-path', appArgs.flashPluginDir);\n} else if (appArgs.flashPluginDir) {\n const flashPath = inferFlash();\n app.commandLine.appendSwitch('ppapi-flash-path', flashPath);\n}\n\nif (appArgs.ignoreCertificate) {\n app.commandLine.appendSwitch('ignore-certificate-errors');\n}\n\nif (appArgs.disableGpu) {\n app.disableHardwareAcceleration();\n}\n\nif (appArgs.ignoreGpuBlacklist) {\n app.commandLine.appendSwitch('ignore-gpu-blacklist');\n}\n\nif (appArgs.enableEs3Apis) {\n app.commandLine.appendSwitch('enable-es3-apis');\n}\n\nif (appArgs.diskCacheSize) {\n app.commandLine.appendSwitch('disk-cache-size', appArgs.diskCacheSize);\n}\n\nif (appArgs.basicAuthUsername) {\n app.commandLine.appendSwitch(\n 'basic-auth-username',\n appArgs.basicAuthUsername,\n );\n}\n\nif (appArgs.basicAuthPassword) {\n app.commandLine.appendSwitch(\n 'basic-auth-password',\n appArgs.basicAuthPassword,\n );\n}\n\n// do nothing for setDockBadge if not OSX\nlet setDockBadge = () => {};\n\nif (isOSX()) {\n let currentBadgeCount = 0;\n\n setDockBadge = (count, bounce = false) => {\n app.dock.setBadge(count);\n if (bounce && count > currentBadgeCount) app.dock.bounce();\n currentBadgeCount = count;\n };\n}\n\napp.on('window-all-closed', () => {\n if (!isOSX() || appArgs.fastQuit) {\n app.quit();\n }\n});\n\napp.on('activate', (event, hasVisibleWindows) => {\n if (isOSX()) {\n // this is called when the dock is clicked\n if (!hasVisibleWindows) {\n mainWindow.show();\n }\n }\n});\n\napp.on('before-quit', () => {\n // not fired when the close button on the window is clicked\n if (isOSX()) {\n // need to force a quit as a workaround here to simulate the osx app hiding behaviour\n // Somehow sokution at https://github.com/atom/electron/issues/444#issuecomment-76492576 does not work,\n // e.prevent default appears to persist\n\n // might cause issues in the future as before-quit and will-quit events are not called\n app.exit(0);\n }\n});\n\nif (appArgs.crashReporter) {\n app.on('will-finish-launching', () => {\n crashReporter.start({\n companyName: appArgs.companyName || '',\n productName: appArgs.name,\n submitURL: appArgs.crashReporter,\n uploadToServer: true,\n });\n });\n}\n\napp.on('ready', () => {\n mainWindow = createMainWindow(appArgs, app.quit, setDockBadge);\n createTrayIcon(appArgs, mainWindow);\n});\n\napp.on('new-window-for-tab', () => {\n mainWindow.emit('new-tab');\n});\n\napp.on('login', (event, webContents, request, authInfo, callback) => {\n // for http authentication\n event.preventDefault();\n\n if (\n appArgs.basicAuthUsername !== null &&\n appArgs.basicAuthPassword !== null\n ) {\n callback(appArgs.basicAuthUsername, appArgs.basicAuthPassword);\n } else {\n createLoginWindow(callback);\n }\n});\n\nif (appArgs.singleInstance) {\n const shouldQuit = app.makeSingleInstance(() => {\n // Someone tried to run a second instance, we should focus our window.\n if (mainWindow) {\n if (!mainWindow.isVisible()) {\n // tray\n mainWindow.show();\n }\n if (mainWindow.isMinimized()) {\n // minimized\n mainWindow.restore();\n }\n mainWindow.focus();\n }\n });\n\n if (shouldQuit) {\n app.quit();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/src/main.js","require('./').install();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map-support/register.js\n// module id = 12\n// module chunks = 0","var SourceMapConsumer = require('source-map').SourceMapConsumer;\nvar path = require('path');\n\nvar fs;\ntry {\n fs = require('fs');\n if (!fs.existsSync || !fs.readFileSync) {\n // fs doesn't have all methods we need\n fs = null;\n }\n} catch (err) {\n /* nop */\n}\n\nvar bufferFrom = require('buffer-from');\n\n// Only install once if called multiple times\nvar errorFormatterInstalled = false;\nvar uncaughtShimInstalled = false;\n\n// If true, the caches are reset before a stack trace formatting operation\nvar emptyCacheBetweenOperations = false;\n\n// Supports {browser, node, auto}\nvar environment = \"auto\";\n\n// Maps a file path to a string containing the file contents\nvar fileContentsCache = {};\n\n// Maps a file path to a source map for that file\nvar sourceMapCache = {};\n\n// Regex for detecting source maps\nvar reSourceMap = /^data:application\\/json[^,]+base64,/;\n\n// Priority list of retrieve handlers\nvar retrieveFileHandlers = [];\nvar retrieveMapHandlers = [];\n\nfunction isInBrowser() {\n if (environment === \"browser\")\n return true;\n if (environment === \"node\")\n return false;\n return ((typeof window !== 'undefined') && (typeof XMLHttpRequest === 'function') && !(window.require && window.module && window.process && window.process.type === \"renderer\"));\n}\n\nfunction hasGlobalProcessEventEmitter() {\n return ((typeof process === 'object') && (process !== null) && (typeof process.on === 'function'));\n}\n\nfunction handlerExec(list) {\n return function(arg) {\n for (var i = 0; i < list.length; i++) {\n var ret = list[i](arg);\n if (ret) {\n return ret;\n }\n }\n return null;\n };\n}\n\nvar retrieveFile = handlerExec(retrieveFileHandlers);\n\nretrieveFileHandlers.push(function(path) {\n // Trim the path to make sure there is no extra whitespace.\n path = path.trim();\n if (/^file:/.test(path)) {\n // existsSync/readFileSync can't handle file protocol, but once stripped, it works\n path = path.replace(/file:\\/\\/\\/(\\w:)?/, function(protocol, drive) {\n return drive ?\n '' : // file:///C:/dir/file -> C:/dir/file\n '/'; // file:///root-dir/file -> /root-dir/file\n });\n }\n if (path in fileContentsCache) {\n return fileContentsCache[path];\n }\n\n var contents = null;\n if (!fs) {\n // Use SJAX if we are in the browser\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, false);\n xhr.send(null);\n var contents = null\n if (xhr.readyState === 4 && xhr.status === 200) {\n contents = xhr.responseText\n }\n } else if (fs.existsSync(path)) {\n // Otherwise, use the filesystem\n try {\n contents = fs.readFileSync(path, 'utf8');\n } catch (er) {\n contents = '';\n }\n }\n\n return fileContentsCache[path] = contents;\n});\n\n// Support URLs relative to a directory, but be careful about a protocol prefix\n// in case we are in the browser (i.e. directories may start with \"http://\" or \"file:///\")\nfunction supportRelativeURL(file, url) {\n if (!file) return url;\n var dir = path.dirname(file);\n var match = /^\\w+:\\/\\/[^\\/]*/.exec(dir);\n var protocol = match ? match[0] : '';\n var startPath = dir.slice(protocol.length);\n if (protocol && /^\\/\\w\\:/.test(startPath)) {\n // handle file:///C:/ paths\n protocol += '/';\n return protocol + path.resolve(dir.slice(protocol.length), url).replace(/\\\\/g, '/');\n }\n return protocol + path.resolve(dir.slice(protocol.length), url);\n}\n\nfunction retrieveSourceMapURL(source) {\n var fileData;\n\n if (isInBrowser()) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', source, false);\n xhr.send(null);\n fileData = xhr.readyState === 4 ? xhr.responseText : null;\n\n // Support providing a sourceMappingURL via the SourceMap header\n var sourceMapHeader = xhr.getResponseHeader(\"SourceMap\") ||\n xhr.getResponseHeader(\"X-SourceMap\");\n if (sourceMapHeader) {\n return sourceMapHeader;\n }\n } catch (e) {\n }\n }\n\n // Get the URL of the source map\n fileData = retrieveFile(source);\n var re = /(?:\\/\\/[@#][ \\t]+sourceMappingURL=([^\\s'\"]+?)[ \\t]*$)|(?:\\/\\*[@#][ \\t]+sourceMappingURL=([^\\*]+?)[ \\t]*(?:\\*\\/)[ \\t]*$)/mg;\n // Keep executing the search to find the *last* sourceMappingURL to avoid\n // picking up sourceMappingURLs from comments, strings, etc.\n var lastMatch, match;\n while (match = re.exec(fileData)) lastMatch = match;\n if (!lastMatch) return null;\n return lastMatch[1];\n};\n\n// Can be overridden by the retrieveSourceMap option to install. Takes a\n// generated source filename; returns a {map, optional url} object, or null if\n// there is no source map. The map field may be either a string or the parsed\n// JSON object (ie, it must be a valid argument to the SourceMapConsumer\n// constructor).\nvar retrieveSourceMap = handlerExec(retrieveMapHandlers);\nretrieveMapHandlers.push(function(source) {\n var sourceMappingURL = retrieveSourceMapURL(source);\n if (!sourceMappingURL) return null;\n\n // Read the contents of the source map\n var sourceMapData;\n if (reSourceMap.test(sourceMappingURL)) {\n // Support source map URL as a data url\n var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1);\n sourceMapData = bufferFrom(rawData, \"base64\").toString();\n sourceMappingURL = source;\n } else {\n // Support source map URLs relative to the source URL\n sourceMappingURL = supportRelativeURL(source, sourceMappingURL);\n sourceMapData = retrieveFile(sourceMappingURL);\n }\n\n if (!sourceMapData) {\n return null;\n }\n\n return {\n url: sourceMappingURL,\n map: sourceMapData\n };\n});\n\nfunction mapSourcePosition(position) {\n var sourceMap = sourceMapCache[position.source];\n if (!sourceMap) {\n // Call the (overrideable) retrieveSourceMap function to get the source map.\n var urlAndMap = retrieveSourceMap(position.source);\n if (urlAndMap) {\n sourceMap = sourceMapCache[position.source] = {\n url: urlAndMap.url,\n map: new SourceMapConsumer(urlAndMap.map)\n };\n\n // Load all sources stored inline with the source map into the file cache\n // to pretend like they are already loaded. They may not exist on disk.\n if (sourceMap.map.sourcesContent) {\n sourceMap.map.sources.forEach(function(source, i) {\n var contents = sourceMap.map.sourcesContent[i];\n if (contents) {\n var url = supportRelativeURL(sourceMap.url, source);\n fileContentsCache[url] = contents;\n }\n });\n }\n } else {\n sourceMap = sourceMapCache[position.source] = {\n url: null,\n map: null\n };\n }\n }\n\n // Resolve the source URL relative to the URL of the source map\n if (sourceMap && sourceMap.map) {\n var originalPosition = sourceMap.map.originalPositionFor(position);\n\n // Only return the original position if a matching line was found. If no\n // matching line is found then we return position instead, which will cause\n // the stack trace to print the path and line for the compiled file. It is\n // better to give a precise location in the compiled file than a vague\n // location in the original file.\n if (originalPosition.source !== null) {\n originalPosition.source = supportRelativeURL(\n sourceMap.url, originalPosition.source);\n return originalPosition;\n }\n }\n\n return position;\n}\n\n// Parses code generated by FormatEvalOrigin(), a function inside V8:\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js\nfunction mapEvalOrigin(origin) {\n // Most eval() calls are in this format\n var match = /^eval at ([^(]+) \\((.+):(\\d+):(\\d+)\\)$/.exec(origin);\n if (match) {\n var position = mapSourcePosition({\n source: match[2],\n line: +match[3],\n column: match[4] - 1\n });\n return 'eval at ' + match[1] + ' (' + position.source + ':' +\n position.line + ':' + (position.column + 1) + ')';\n }\n\n // Parse nested eval() calls using recursion\n match = /^eval at ([^(]+) \\((.+)\\)$/.exec(origin);\n if (match) {\n return 'eval at ' + match[1] + ' (' + mapEvalOrigin(match[2]) + ')';\n }\n\n // Make sure we still return useful information if we didn't find anything\n return origin;\n}\n\n// This is copied almost verbatim from the V8 source code at\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js. The\n// implementation of wrapCallSite() used to just forward to the actual source\n// code of CallSite.prototype.toString but unfortunately a new release of V8\n// did something to the prototype chain and broke the shim. The only fix I\n// could find was copy/paste.\nfunction CallSiteToString() {\n var fileName;\n var fileLocation = \"\";\n if (this.isNative()) {\n fileLocation = \"native\";\n } else {\n fileName = this.getScriptNameOrSourceURL();\n if (!fileName && this.isEval()) {\n fileLocation = this.getEvalOrigin();\n fileLocation += \", \"; // Expecting source position to follow.\n }\n\n if (fileName) {\n fileLocation += fileName;\n } else {\n // Source code does not originate from a file and is not native, but we\n // can still get the source position inside the source string, e.g. in\n // an eval string.\n fileLocation += \"<anonymous>\";\n }\n var lineNumber = this.getLineNumber();\n if (lineNumber != null) {\n fileLocation += \":\" + lineNumber;\n var columnNumber = this.getColumnNumber();\n if (columnNumber) {\n fileLocation += \":\" + columnNumber;\n }\n }\n }\n\n var line = \"\";\n var functionName = this.getFunctionName();\n var addSuffix = true;\n var isConstructor = this.isConstructor();\n var isMethodCall = !(this.isToplevel() || isConstructor);\n if (isMethodCall) {\n var typeName = this.getTypeName();\n // Fixes shim to be backward compatable with Node v0 to v4\n if (typeName === \"[object Object]\") {\n typeName = \"null\";\n }\n var methodName = this.getMethodName();\n if (functionName) {\n if (typeName && functionName.indexOf(typeName) != 0) {\n line += typeName + \".\";\n }\n line += functionName;\n if (methodName && functionName.indexOf(\".\" + methodName) != functionName.length - methodName.length - 1) {\n line += \" [as \" + methodName + \"]\";\n }\n } else {\n line += typeName + \".\" + (methodName || \"<anonymous>\");\n }\n } else if (isConstructor) {\n line += \"new \" + (functionName || \"<anonymous>\");\n } else if (functionName) {\n line += functionName;\n } else {\n line += fileLocation;\n addSuffix = false;\n }\n if (addSuffix) {\n line += \" (\" + fileLocation + \")\";\n }\n return line;\n}\n\nfunction cloneCallSite(frame) {\n var object = {};\n Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach(function(name) {\n object[name] = /^(?:is|get)/.test(name) ? function() { return frame[name].call(frame); } : frame[name];\n });\n object.toString = CallSiteToString;\n return object;\n}\n\nfunction wrapCallSite(frame) {\n if(frame.isNative()) {\n return frame;\n }\n\n // Most call sites will return the source file from getFileName(), but code\n // passed to eval() ending in \"//# sourceURL=...\" will return the source file\n // from getScriptNameOrSourceURL() instead\n var source = frame.getFileName() || frame.getScriptNameOrSourceURL();\n if (source) {\n var line = frame.getLineNumber();\n var column = frame.getColumnNumber() - 1;\n\n // Fix position in Node where some (internal) code is prepended.\n // See https://github.com/evanw/node-source-map-support/issues/36\n var headerLength = 62;\n if (line === 1 && column > headerLength && !isInBrowser() && !frame.isEval()) {\n column -= headerLength;\n }\n\n var position = mapSourcePosition({\n source: source,\n line: line,\n column: column\n });\n frame = cloneCallSite(frame);\n frame.getFileName = function() { return position.source; };\n frame.getLineNumber = function() { return position.line; };\n frame.getColumnNumber = function() { return position.column + 1; };\n frame.getScriptNameOrSourceURL = function() { return position.source; };\n return frame;\n }\n\n // Code called using eval() needs special handling\n var origin = frame.isEval() && frame.getEvalOrigin();\n if (origin) {\n origin = mapEvalOrigin(origin);\n frame = cloneCallSite(frame);\n frame.getEvalOrigin = function() { return origin; };\n return frame;\n }\n\n // If we get here then we were unable to change the source position\n return frame;\n}\n\n// This function is part of the V8 stack trace API, for more info see:\n// http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi\nfunction prepareStackTrace(error, stack) {\n if (emptyCacheBetweenOperations) {\n fileContentsCache = {};\n sourceMapCache = {};\n }\n\n return error + stack.map(function(frame) {\n return '\\n at ' + wrapCallSite(frame);\n }).join('');\n}\n\n// Generate position and snippet of original source with pointer\nfunction getErrorSource(error) {\n var match = /\\n at [^(]+ \\((.*):(\\d+):(\\d+)\\)/.exec(error.stack);\n if (match) {\n var source = match[1];\n var line = +match[2];\n var column = +match[3];\n\n // Support the inline sourceContents inside the source map\n var contents = fileContentsCache[source];\n\n // Support files on disk\n if (!contents && fs && fs.existsSync(source)) {\n try {\n contents = fs.readFileSync(source, 'utf8');\n } catch (er) {\n contents = '';\n }\n }\n\n // Format the line from the original source code like node does\n if (contents) {\n var code = contents.split(/(?:\\r\\n|\\r|\\n)/)[line - 1];\n if (code) {\n return source + ':' + line + '\\n' + code + '\\n' +\n new Array(column).join(' ') + '^';\n }\n }\n }\n return null;\n}\n\nfunction printErrorAndExit (error) {\n var source = getErrorSource(error);\n\n if (source) {\n fs.writeSync(2, \"\\n\" + source + \"\\n\");\n }\n\n fs.writeSync(2, error.stack + \"\\n\");\n process.exit(1);\n}\n\nfunction shimEmitUncaughtException () {\n var origEmit = process.emit;\n\n process.emit = function (type) {\n if (type === 'uncaughtException') {\n var hasStack = (arguments[1] && arguments[1].stack);\n var hasListeners = (this.listeners(type).length > 0);\n\n if (hasStack && !hasListeners) {\n return printErrorAndExit(arguments[1]);\n }\n }\n\n return origEmit.apply(this, arguments);\n };\n}\n\nvar originalRetrieveFileHandlers = retrieveFileHandlers.slice(0);\nvar originalRetrieveMapHandlers = retrieveMapHandlers.slice(0);\n\nexports.wrapCallSite = wrapCallSite;\nexports.getErrorSource = getErrorSource;\nexports.mapSourcePosition = mapSourcePosition;\nexports.retrieveSourceMap = retrieveSourceMap;\n\nexports.install = function(options) {\n options = options || {};\n\n if (options.environment) {\n environment = options.environment;\n if ([\"node\", \"browser\", \"auto\"].indexOf(environment) === -1) {\n throw new Error(\"environment \" + environment + \" was unknown. Available options are {auto, browser, node}\")\n }\n }\n\n // Allow sources to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveFile) {\n if (options.overrideRetrieveFile) {\n retrieveFileHandlers.length = 0;\n }\n\n retrieveFileHandlers.unshift(options.retrieveFile);\n }\n\n // Allow source maps to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveSourceMap) {\n if (options.overrideRetrieveSourceMap) {\n retrieveMapHandlers.length = 0;\n }\n\n retrieveMapHandlers.unshift(options.retrieveSourceMap);\n }\n\n // Support runtime transpilers that include inline source maps\n if (options.hookRequire && !isInBrowser()) {\n var Module;\n try {\n Module = require('module');\n } catch (err) {\n // NOP: Loading in catch block to convert webpack error to warning.\n }\n var $compile = Module.prototype._compile;\n\n if (!$compile.__sourceMapSupport) {\n Module.prototype._compile = function(content, filename) {\n fileContentsCache[filename] = content;\n sourceMapCache[filename] = undefined;\n return $compile.call(this, content, filename);\n };\n\n Module.prototype._compile.__sourceMapSupport = true;\n }\n }\n\n // Configure options\n if (!emptyCacheBetweenOperations) {\n emptyCacheBetweenOperations = 'emptyCacheBetweenOperations' in options ?\n options.emptyCacheBetweenOperations : false;\n }\n\n // Install the error reformatter\n if (!errorFormatterInstalled) {\n errorFormatterInstalled = true;\n Error.prepareStackTrace = prepareStackTrace;\n }\n\n if (!uncaughtShimInstalled) {\n var installHandler = 'handleUncaughtExceptions' in options ?\n options.handleUncaughtExceptions : true;\n\n // Provide the option to not install the uncaught exception handler. This is\n // to support other uncaught exception handlers (in test frameworks, for\n // example). If this handler is not installed and there are no other uncaught\n // exception handlers, uncaught exceptions will be caught by node's built-in\n // exception handler and the process will still be terminated. However, the\n // generated JavaScript code will be shown above the stack trace instead of\n // the original source code.\n if (installHandler && hasGlobalProcessEventEmitter()) {\n uncaughtShimInstalled = true;\n shimEmitUncaughtException();\n }\n }\n};\n\nexports.resetRetrieveHandlers = function() {\n retrieveFileHandlers.length = 0;\n retrieveMapHandlers.length = 0;\n\n retrieveFileHandlers = originalRetrieveFileHandlers.slice(0);\n retrieveMapHandlers = originalRetrieveMapHandlers.slice(0);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map-support/source-map-support.js\n// module id = 13\n// module chunks = 0","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/source-map.js\n// module id = 14\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/base64.js\n// module id = 15\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/mapping-list.js\n// module id = 16\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/source-map-consumer.js\n// module id = 17\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/binary-search.js\n// module id = 18\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/quick-sort.js\n// module id = 19\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/source-map/lib/source-node.js\n// module id = 20\n// module chunks = 0","var toString = Object.prototype.toString\n\nvar isModern = (\n typeof Buffer.alloc === 'function' &&\n typeof Buffer.allocUnsafe === 'function' &&\n typeof Buffer.from === 'function'\n)\n\nfunction isArrayBuffer (input) {\n return toString.call(input).slice(8, -1) === 'ArrayBuffer'\n}\n\nfunction fromArrayBuffer (obj, byteOffset, length) {\n byteOffset >>>= 0\n\n var maxLength = obj.byteLength - byteOffset\n\n if (maxLength < 0) {\n throw new RangeError(\"'offset' is out of bounds\")\n }\n\n if (length === undefined) {\n length = maxLength\n } else {\n length >>>= 0\n\n if (length > maxLength) {\n throw new RangeError(\"'length' is out of bounds\")\n }\n }\n\n return isModern\n ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\n : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n return isModern\n ? Buffer.from(string, encoding)\n : new Buffer(string, encoding)\n}\n\nfunction bufferFrom (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value)) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return isModern\n ? Buffer.from(value)\n : new Buffer(value)\n}\n\nmodule.exports = bufferFrom\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/buffer-from/index.js\n// module id = 21\n// module chunks = 0","module.exports = require(\"module\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"module\"\n// module id = 22\n// module chunks = 0","'use strict';\nconst pathExists = require('path-exists');\nconst modifyFilename = require('modify-filename');\n\nconst incrementer = fp => {\n\tlet i = 0;\n\treturn () => modifyFilename(fp, (filename, ext) => `${filename} (${++i})${ext}`);\n};\n\nmodule.exports = fp => {\n\tconst getFp = incrementer(fp);\n\tconst find = newFp => pathExists(newFp).then(x => x ? find(getFp()) : newFp);\n\treturn find(fp);\n};\n\nmodule.exports.sync = fp => {\n\tconst getFp = incrementer(fp);\n\tconst find = newFp => pathExists.sync(newFp) ? find(getFp()) : newFp;\n\treturn find(fp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/unused-filename/index.js\n// module id = 23\n// module chunks = 0","'use strict';\nconst fs = require('fs');\n\nmodule.exports = fp => new Promise(resolve => {\n\tfs.access(fp, err => {\n\t\tresolve(!err);\n\t});\n});\n\nmodule.exports.sync = fp => {\n\ttry {\n\t\tfs.accessSync(fp);\n\t\treturn true;\n\t} catch (err) {\n\t\treturn false;\n\t}\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/path-exists/index.js\n// module id = 24\n// module chunks = 0","'use strict';\nvar path = require('path');\n\nmodule.exports = function modifyFilename(pth, modifier) {\n\tif (arguments.length !== 2) {\n\t\tthrow new Error('`path` and `modifier` required');\n\t}\n\n\tif (Array.isArray(pth)) {\n\t\treturn pth.map(function (el) {\n\t\t\treturn modifyFilename(el, modifier);\n\t\t});\n\t}\n\n\tvar ext = path.extname(pth);\n\treturn path.join(path.dirname(pth), modifier(path.basename(pth, ext), ext));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/modify-filename/index.js\n// module id = 25\n// module chunks = 0","'use strict';\nmodule.exports = (tpl, data) => {\n\tif (typeof tpl !== 'string') {\n\t\tthrow new TypeError(`Expected a string in the first argument, got ${typeof tpl}`);\n\t}\n\n\tif (typeof data !== 'object') {\n\t\tthrow new TypeError(`Expected an Object/Array in the second argument, got ${typeof data}`);\n\t}\n\n\tconst re = /{(.*?)}/g;\n\n\treturn tpl.replace(re, (_, key) => {\n\t\tlet ret = data;\n\n\t\tfor (const prop of key.split('.')) {\n\t\t\tret = ret ? ret[prop] : '';\n\t\t}\n\n\t\treturn ret || '';\n\t});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/pupa/index.js\n// module id = 26\n// module chunks = 0","'use strict';\nconst extList = require('ext-list');\nconst sortKeysLength = require('sort-keys-length');\n\nmodule.exports = str => {\n\tconst obj = sortKeysLength.desc(extList());\n\tconst exts = Object.keys(obj).filter(x => str.endsWith(x));\n\n\tif (exts.length === 0) {\n\t\treturn [];\n\t}\n\n\treturn exts.map(x => ({\n\t\text: x,\n\t\tmime: obj[x]\n\t}));\n};\n\nmodule.exports.mime = str => {\n\tconst obj = sortKeysLength.desc(extList());\n\tconst exts = Object.keys(obj).filter(x => obj[x] === str);\n\n\tif (exts.length === 0) {\n\t\treturn [];\n\t}\n\n\treturn exts.map(x => ({\n\t\text: x,\n\t\tmime: obj[x]\n\t}));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/ext-name/index.js\n// module id = 27\n// module chunks = 0","'use strict';\nvar mimeDb = require('mime-db');\n\nmodule.exports = function () {\n\tvar ret = {};\n\n\tObject.keys(mimeDb).forEach(function (x) {\n\t\tvar val = mimeDb[x];\n\n\t\tif (val.extensions && val.extensions.length > 0) {\n\t\t\tval.extensions.forEach(function (y) {\n\t\t\t\tret[y] = x;\n\t\t\t});\n\t\t}\n\t});\n\n\treturn ret;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/ext-list/index.js\n// module id = 28\n// module chunks = 0","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/mime-db/index.js\n// module id = 29\n// module chunks = 0","module.exports = {\"application/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"application/3gpdash-qoe-report+xml\":{\"source\":\"iana\"},\"application/3gpp-ims+xml\":{\"source\":\"iana\"},\"application/a2l\":{\"source\":\"iana\"},\"application/activemessage\":{\"source\":\"iana\"},\"application/alto-costmap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-costmapfilter+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-directory+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointcost+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointcostparams+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointprop+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointpropparams+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-error+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-networkmap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-networkmapfilter+json\":{\"source\":\"iana\",\"compressible\":true},\"application/aml\":{\"source\":\"iana\"},\"application/andrew-inset\":{\"source\":\"iana\",\"extensions\":[\"ez\"]},\"application/applefile\":{\"source\":\"iana\"},\"application/applixware\":{\"source\":\"apache\",\"extensions\":[\"aw\"]},\"application/atf\":{\"source\":\"iana\"},\"application/atfx\":{\"source\":\"iana\"},\"application/atom+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"atom\"]},\"application/atomcat+xml\":{\"source\":\"iana\",\"extensions\":[\"atomcat\"]},\"application/atomdeleted+xml\":{\"source\":\"iana\"},\"application/atomicmail\":{\"source\":\"iana\"},\"application/atomsvc+xml\":{\"source\":\"iana\",\"extensions\":[\"atomsvc\"]},\"application/atxml\":{\"source\":\"iana\"},\"application/auth-policy+xml\":{\"source\":\"iana\"},\"application/bacnet-xdd+zip\":{\"source\":\"iana\"},\"application/batch-smtp\":{\"source\":\"iana\"},\"application/bdoc\":{\"compressible\":false,\"extensions\":[\"bdoc\"]},\"application/beep+xml\":{\"source\":\"iana\"},\"application/calendar+json\":{\"source\":\"iana\",\"compressible\":true},\"application/calendar+xml\":{\"source\":\"iana\"},\"application/call-completion\":{\"source\":\"iana\"},\"application/cals-1840\":{\"source\":\"iana\"},\"application/cbor\":{\"source\":\"iana\"},\"application/cccex\":{\"source\":\"iana\"},\"application/ccmp+xml\":{\"source\":\"iana\"},\"application/ccxml+xml\":{\"source\":\"iana\",\"extensions\":[\"ccxml\"]},\"application/cdfx+xml\":{\"source\":\"iana\"},\"application/cdmi-capability\":{\"source\":\"iana\",\"extensions\":[\"cdmia\"]},\"application/cdmi-container\":{\"source\":\"iana\",\"extensions\":[\"cdmic\"]},\"application/cdmi-domain\":{\"source\":\"iana\",\"extensions\":[\"cdmid\"]},\"application/cdmi-object\":{\"source\":\"iana\",\"extensions\":[\"cdmio\"]},\"application/cdmi-queue\":{\"source\":\"iana\",\"extensions\":[\"cdmiq\"]},\"application/cdni\":{\"source\":\"iana\"},\"application/cea\":{\"source\":\"iana\"},\"application/cea-2018+xml\":{\"source\":\"iana\"},\"application/cellml+xml\":{\"source\":\"iana\"},\"application/cfw\":{\"source\":\"iana\"},\"application/clue_info+xml\":{\"source\":\"iana\"},\"application/cms\":{\"source\":\"iana\"},\"application/cnrp+xml\":{\"source\":\"iana\"},\"application/coap-group+json\":{\"source\":\"iana\",\"compressible\":true},\"application/coap-payload\":{\"source\":\"iana\"},\"application/commonground\":{\"source\":\"iana\"},\"application/conference-info+xml\":{\"source\":\"iana\"},\"application/cose\":{\"source\":\"iana\"},\"application/cose-key\":{\"source\":\"iana\"},\"application/cose-key-set\":{\"source\":\"iana\"},\"application/cpl+xml\":{\"source\":\"iana\"},\"application/csrattrs\":{\"source\":\"iana\"},\"application/csta+xml\":{\"source\":\"iana\"},\"application/cstadata+xml\":{\"source\":\"iana\"},\"application/csvm+json\":{\"source\":\"iana\",\"compressible\":true},\"application/cu-seeme\":{\"source\":\"apache\",\"extensions\":[\"cu\"]},\"application/cybercash\":{\"source\":\"iana\"},\"application/dart\":{\"compressible\":true},\"application/dash+xml\":{\"source\":\"iana\",\"extensions\":[\"mpd\"]},\"application/dashdelta\":{\"source\":\"iana\"},\"application/davmount+xml\":{\"source\":\"iana\",\"extensions\":[\"davmount\"]},\"application/dca-rft\":{\"source\":\"iana\"},\"application/dcd\":{\"source\":\"iana\"},\"application/dec-dx\":{\"source\":\"iana\"},\"application/dialog-info+xml\":{\"source\":\"iana\"},\"application/dicom\":{\"source\":\"iana\"},\"application/dicom+json\":{\"source\":\"iana\",\"compressible\":true},\"application/dicom+xml\":{\"source\":\"iana\"},\"application/dii\":{\"source\":\"iana\"},\"application/dit\":{\"source\":\"iana\"},\"application/dns\":{\"source\":\"iana\"},\"application/docbook+xml\":{\"source\":\"apache\",\"extensions\":[\"dbk\"]},\"application/dskpp+xml\":{\"source\":\"iana\"},\"application/dssc+der\":{\"source\":\"iana\",\"extensions\":[\"dssc\"]},\"application/dssc+xml\":{\"source\":\"iana\",\"extensions\":[\"xdssc\"]},\"application/dvcs\":{\"source\":\"iana\"},\"application/ecmascript\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ecma\"]},\"application/edi-consent\":{\"source\":\"iana\"},\"application/edi-x12\":{\"source\":\"iana\",\"compressible\":false},\"application/edifact\":{\"source\":\"iana\",\"compressible\":false},\"application/efi\":{\"source\":\"iana\"},\"application/emergencycalldata.comment+xml\":{\"source\":\"iana\"},\"application/emergencycalldata.control+xml\":{\"source\":\"iana\"},\"application/emergencycalldata.deviceinfo+xml\":{\"source\":\"iana\"},\"application/emergencycalldata.ecall.msd\":{\"source\":\"iana\"},\"application/emergencycalldata.providerinfo+xml\":{\"source\":\"iana\"},\"application/emergencycalldata.serviceinfo+xml\":{\"source\":\"iana\"},\"application/emergencycalldata.subscriberinfo+xml\":{\"source\":\"iana\"},\"application/emergencycalldata.veds+xml\":{\"source\":\"iana\"},\"application/emma+xml\":{\"source\":\"iana\",\"extensions\":[\"emma\"]},\"application/emotionml+xml\":{\"source\":\"iana\"},\"application/encaprtp\":{\"source\":\"iana\"},\"application/epp+xml\":{\"source\":\"iana\"},\"application/epub+zip\":{\"source\":\"iana\",\"extensions\":[\"epub\"]},\"application/eshop\":{\"source\":\"iana\"},\"application/exi\":{\"source\":\"iana\",\"extensions\":[\"exi\"]},\"application/fastinfoset\":{\"source\":\"iana\"},\"application/fastsoap\":{\"source\":\"iana\"},\"application/fdt+xml\":{\"source\":\"iana\"},\"application/fhir+xml\":{\"source\":\"iana\"},\"application/fido.trusted-apps+json\":{\"compressible\":true},\"application/fits\":{\"source\":\"iana\"},\"application/font-sfnt\":{\"source\":\"iana\"},\"application/font-tdpfr\":{\"source\":\"iana\",\"extensions\":[\"pfr\"]},\"application/font-woff\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"woff\"]},\"application/framework-attributes+xml\":{\"source\":\"iana\"},\"application/geo+json\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"geojson\"]},\"application/geo+json-seq\":{\"source\":\"iana\"},\"application/geoxacml+xml\":{\"source\":\"iana\"},\"application/gml+xml\":{\"source\":\"iana\",\"extensions\":[\"gml\"]},\"application/gpx+xml\":{\"source\":\"apache\",\"extensions\":[\"gpx\"]},\"application/gxf\":{\"source\":\"apache\",\"extensions\":[\"gxf\"]},\"application/gzip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"gz\"]},\"application/h224\":{\"source\":\"iana\"},\"application/held+xml\":{\"source\":\"iana\"},\"application/hjson\":{\"extensions\":[\"hjson\"]},\"application/http\":{\"source\":\"iana\"},\"application/hyperstudio\":{\"source\":\"iana\",\"extensions\":[\"stk\"]},\"application/ibe-key-request+xml\":{\"source\":\"iana\"},\"application/ibe-pkg-reply+xml\":{\"source\":\"iana\"},\"application/ibe-pp-data\":{\"source\":\"iana\"},\"application/iges\":{\"source\":\"iana\"},\"application/im-iscomposing+xml\":{\"source\":\"iana\"},\"application/index\":{\"source\":\"iana\"},\"application/index.cmd\":{\"source\":\"iana\"},\"application/index.obj\":{\"source\":\"iana\"},\"application/index.response\":{\"source\":\"iana\"},\"application/index.vnd\":{\"source\":\"iana\"},\"application/inkml+xml\":{\"source\":\"iana\",\"extensions\":[\"ink\",\"inkml\"]},\"application/iotp\":{\"source\":\"iana\"},\"application/ipfix\":{\"source\":\"iana\",\"extensions\":[\"ipfix\"]},\"application/ipp\":{\"source\":\"iana\"},\"application/isup\":{\"source\":\"iana\"},\"application/its+xml\":{\"source\":\"iana\"},\"application/java-archive\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"jar\",\"war\",\"ear\"]},\"application/java-serialized-object\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"ser\"]},\"application/java-vm\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"class\"]},\"application/javascript\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"js\",\"mjs\"]},\"application/jf2feed+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jose\":{\"source\":\"iana\"},\"application/jose+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jrd+json\":{\"source\":\"iana\",\"compressible\":true},\"application/json\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"json\",\"map\"]},\"application/json-patch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/json-seq\":{\"source\":\"iana\"},\"application/json5\":{\"extensions\":[\"json5\"]},\"application/jsonml+json\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"jsonml\"]},\"application/jwk+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jwk-set+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jwt\":{\"source\":\"iana\"},\"application/kpml-request+xml\":{\"source\":\"iana\"},\"application/kpml-response+xml\":{\"source\":\"iana\"},\"application/ld+json\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"jsonld\"]},\"application/lgr+xml\":{\"source\":\"iana\"},\"application/link-format\":{\"source\":\"iana\"},\"application/load-control+xml\":{\"source\":\"iana\"},\"application/lost+xml\":{\"source\":\"iana\",\"extensions\":[\"lostxml\"]},\"application/lostsync+xml\":{\"source\":\"iana\"},\"application/lxf\":{\"source\":\"iana\"},\"application/mac-binhex40\":{\"source\":\"iana\",\"extensions\":[\"hqx\"]},\"application/mac-compactpro\":{\"source\":\"apache\",\"extensions\":[\"cpt\"]},\"application/macwriteii\":{\"source\":\"iana\"},\"application/mads+xml\":{\"source\":\"iana\",\"extensions\":[\"mads\"]},\"application/manifest+json\":{\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"webmanifest\"]},\"application/marc\":{\"source\":\"iana\",\"extensions\":[\"mrc\"]},\"application/marcxml+xml\":{\"source\":\"iana\",\"extensions\":[\"mrcx\"]},\"application/mathematica\":{\"source\":\"iana\",\"extensions\":[\"ma\",\"nb\",\"mb\"]},\"application/mathml+xml\":{\"source\":\"iana\",\"extensions\":[\"mathml\"]},\"application/mathml-content+xml\":{\"source\":\"iana\"},\"application/mathml-presentation+xml\":{\"source\":\"iana\"},\"application/mbms-associated-procedure-description+xml\":{\"source\":\"iana\"},\"application/mbms-deregister+xml\":{\"source\":\"iana\"},\"application/mbms-envelope+xml\":{\"source\":\"iana\"},\"application/mbms-msk+xml\":{\"source\":\"iana\"},\"application/mbms-msk-response+xml\":{\"source\":\"iana\"},\"application/mbms-protection-description+xml\":{\"source\":\"iana\"},\"application/mbms-reception-report+xml\":{\"source\":\"iana\"},\"application/mbms-register+xml\":{\"source\":\"iana\"},\"application/mbms-register-response+xml\":{\"source\":\"iana\"},\"application/mbms-schedule+xml\":{\"source\":\"iana\"},\"application/mbms-user-service-description+xml\":{\"source\":\"iana\"},\"application/mbox\":{\"source\":\"iana\",\"extensions\":[\"mbox\"]},\"application/media-policy-dataset+xml\":{\"source\":\"iana\"},\"application/media_control+xml\":{\"source\":\"iana\"},\"application/mediaservercontrol+xml\":{\"source\":\"iana\",\"extensions\":[\"mscml\"]},\"application/merge-patch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/metalink+xml\":{\"source\":\"apache\",\"extensions\":[\"metalink\"]},\"application/metalink4+xml\":{\"source\":\"iana\",\"extensions\":[\"meta4\"]},\"application/mets+xml\":{\"source\":\"iana\",\"extensions\":[\"mets\"]},\"application/mf4\":{\"source\":\"iana\"},\"application/mikey\":{\"source\":\"iana\"},\"application/mmt-usd+xml\":{\"source\":\"iana\"},\"application/mods+xml\":{\"source\":\"iana\",\"extensions\":[\"mods\"]},\"application/moss-keys\":{\"source\":\"iana\"},\"application/moss-signature\":{\"source\":\"iana\"},\"application/mosskey-data\":{\"source\":\"iana\"},\"application/mosskey-request\":{\"source\":\"iana\"},\"application/mp21\":{\"source\":\"iana\",\"extensions\":[\"m21\",\"mp21\"]},\"application/mp4\":{\"source\":\"iana\",\"extensions\":[\"mp4s\",\"m4p\"]},\"application/mpeg4-generic\":{\"source\":\"iana\"},\"application/mpeg4-iod\":{\"source\":\"iana\"},\"application/mpeg4-iod-xmt\":{\"source\":\"iana\"},\"application/mrb-consumer+xml\":{\"source\":\"iana\"},\"application/mrb-publish+xml\":{\"source\":\"iana\"},\"application/msc-ivr+xml\":{\"source\":\"iana\"},\"application/msc-mixer+xml\":{\"source\":\"iana\"},\"application/msword\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"doc\",\"dot\"]},\"application/mud+json\":{\"source\":\"iana\",\"compressible\":true},\"application/mxf\":{\"source\":\"iana\",\"extensions\":[\"mxf\"]},\"application/n-quads\":{\"source\":\"iana\"},\"application/n-triples\":{\"source\":\"iana\"},\"application/nasdata\":{\"source\":\"iana\"},\"application/news-checkgroups\":{\"source\":\"iana\"},\"application/news-groupinfo\":{\"source\":\"iana\"},\"application/news-transmission\":{\"source\":\"iana\"},\"application/nlsml+xml\":{\"source\":\"iana\"},\"application/node\":{\"source\":\"iana\"},\"application/nss\":{\"source\":\"iana\"},\"application/ocsp-request\":{\"source\":\"iana\"},\"application/ocsp-response\":{\"source\":\"iana\"},\"application/octet-stream\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]},\"application/oda\":{\"source\":\"iana\",\"extensions\":[\"oda\"]},\"application/odx\":{\"source\":\"iana\"},\"application/oebps-package+xml\":{\"source\":\"iana\",\"extensions\":[\"opf\"]},\"application/ogg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ogx\"]},\"application/omdoc+xml\":{\"source\":\"apache\",\"extensions\":[\"omdoc\"]},\"application/onenote\":{\"source\":\"apache\",\"extensions\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]},\"application/oxps\":{\"source\":\"iana\",\"extensions\":[\"oxps\"]},\"application/p2p-overlay+xml\":{\"source\":\"iana\"},\"application/parityfec\":{\"source\":\"iana\"},\"application/passport\":{\"source\":\"iana\"},\"application/patch-ops-error+xml\":{\"source\":\"iana\",\"extensions\":[\"xer\"]},\"application/pdf\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"pdf\"]},\"application/pdx\":{\"source\":\"iana\"},\"application/pgp-encrypted\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"pgp\"]},\"application/pgp-keys\":{\"source\":\"iana\"},\"application/pgp-signature\":{\"source\":\"iana\",\"extensions\":[\"asc\",\"sig\"]},\"application/pics-rules\":{\"source\":\"apache\",\"extensions\":[\"prf\"]},\"application/pidf+xml\":{\"source\":\"iana\"},\"application/pidf-diff+xml\":{\"source\":\"iana\"},\"application/pkcs10\":{\"source\":\"iana\",\"extensions\":[\"p10\"]},\"application/pkcs12\":{\"source\":\"iana\"},\"application/pkcs7-mime\":{\"source\":\"iana\",\"extensions\":[\"p7m\",\"p7c\"]},\"application/pkcs7-signature\":{\"source\":\"iana\",\"extensions\":[\"p7s\"]},\"application/pkcs8\":{\"source\":\"iana\",\"extensions\":[\"p8\"]},\"application/pkcs8-encrypted\":{\"source\":\"iana\"},\"application/pkix-attr-cert\":{\"source\":\"iana\",\"extensions\":[\"ac\"]},\"application/pkix-cert\":{\"source\":\"iana\",\"extensions\":[\"cer\"]},\"application/pkix-crl\":{\"source\":\"iana\",\"extensions\":[\"crl\"]},\"application/pkix-pkipath\":{\"source\":\"iana\",\"extensions\":[\"pkipath\"]},\"application/pkixcmp\":{\"source\":\"iana\",\"extensions\":[\"pki\"]},\"application/pls+xml\":{\"source\":\"iana\",\"extensions\":[\"pls\"]},\"application/poc-settings+xml\":{\"source\":\"iana\"},\"application/postscript\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ai\",\"eps\",\"ps\"]},\"application/ppsp-tracker+json\":{\"source\":\"iana\",\"compressible\":true},\"application/problem+json\":{\"source\":\"iana\",\"compressible\":true},\"application/problem+xml\":{\"source\":\"iana\"},\"application/provenance+xml\":{\"source\":\"iana\"},\"application/prs.alvestrand.titrax-sheet\":{\"source\":\"iana\"},\"application/prs.cww\":{\"source\":\"iana\",\"extensions\":[\"cww\"]},\"application/prs.hpub+zip\":{\"source\":\"iana\"},\"application/prs.nprend\":{\"source\":\"iana\"},\"application/prs.plucker\":{\"source\":\"iana\"},\"application/prs.rdf-xml-crypt\":{\"source\":\"iana\"},\"application/prs.xsf+xml\":{\"source\":\"iana\"},\"application/pskc+xml\":{\"source\":\"iana\",\"extensions\":[\"pskcxml\"]},\"application/qsig\":{\"source\":\"iana\"},\"application/raml+yaml\":{\"compressible\":true,\"extensions\":[\"raml\"]},\"application/raptorfec\":{\"source\":\"iana\"},\"application/rdap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/rdf+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rdf\"]},\"application/reginfo+xml\":{\"source\":\"iana\",\"extensions\":[\"rif\"]},\"application/relax-ng-compact-syntax\":{\"source\":\"iana\",\"extensions\":[\"rnc\"]},\"application/remote-printing\":{\"source\":\"iana\"},\"application/reputon+json\":{\"source\":\"iana\",\"compressible\":true},\"application/resource-lists+xml\":{\"source\":\"iana\",\"extensions\":[\"rl\"]},\"application/resource-lists-diff+xml\":{\"source\":\"iana\",\"extensions\":[\"rld\"]},\"application/rfc+xml\":{\"source\":\"iana\"},\"application/riscos\":{\"source\":\"iana\"},\"application/rlmi+xml\":{\"source\":\"iana\"},\"application/rls-services+xml\":{\"source\":\"iana\",\"extensions\":[\"rs\"]},\"application/route-apd+xml\":{\"source\":\"iana\"},\"application/route-s-tsid+xml\":{\"source\":\"iana\"},\"application/route-usd+xml\":{\"source\":\"iana\"},\"application/rpki-ghostbusters\":{\"source\":\"iana\",\"extensions\":[\"gbr\"]},\"application/rpki-manifest\":{\"source\":\"iana\",\"extensions\":[\"mft\"]},\"application/rpki-publication\":{\"source\":\"iana\"},\"application/rpki-roa\":{\"source\":\"iana\",\"extensions\":[\"roa\"]},\"application/rpki-updown\":{\"source\":\"iana\"},\"application/rsd+xml\":{\"source\":\"apache\",\"extensions\":[\"rsd\"]},\"application/rss+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"rss\"]},\"application/rtf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rtf\"]},\"application/rtploopback\":{\"source\":\"iana\"},\"application/rtx\":{\"source\":\"iana\"},\"application/samlassertion+xml\":{\"source\":\"iana\"},\"application/samlmetadata+xml\":{\"source\":\"iana\"},\"application/sbml+xml\":{\"source\":\"iana\",\"extensions\":[\"sbml\"]},\"application/scaip+xml\":{\"source\":\"iana\"},\"application/scim+json\":{\"source\":\"iana\",\"compressible\":true},\"application/scvp-cv-request\":{\"source\":\"iana\",\"extensions\":[\"scq\"]},\"application/scvp-cv-response\":{\"source\":\"iana\",\"extensions\":[\"scs\"]},\"application/scvp-vp-request\":{\"source\":\"iana\",\"extensions\":[\"spq\"]},\"application/scvp-vp-response\":{\"source\":\"iana\",\"extensions\":[\"spp\"]},\"application/sdp\":{\"source\":\"iana\",\"extensions\":[\"sdp\"]},\"application/sep+xml\":{\"source\":\"iana\"},\"application/sep-exi\":{\"source\":\"iana\"},\"application/session-info\":{\"source\":\"iana\"},\"application/set-payment\":{\"source\":\"iana\"},\"application/set-payment-initiation\":{\"source\":\"iana\",\"extensions\":[\"setpay\"]},\"application/set-registration\":{\"source\":\"iana\"},\"application/set-registration-initiation\":{\"source\":\"iana\",\"extensions\":[\"setreg\"]},\"application/sgml\":{\"source\":\"iana\"},\"application/sgml-open-catalog\":{\"source\":\"iana\"},\"application/shf+xml\":{\"source\":\"iana\",\"extensions\":[\"shf\"]},\"application/sieve\":{\"source\":\"iana\"},\"application/simple-filter+xml\":{\"source\":\"iana\"},\"application/simple-message-summary\":{\"source\":\"iana\"},\"application/simplesymbolcontainer\":{\"source\":\"iana\"},\"application/slate\":{\"source\":\"iana\"},\"application/smil\":{\"source\":\"iana\"},\"application/smil+xml\":{\"source\":\"iana\",\"extensions\":[\"smi\",\"smil\"]},\"application/smpte336m\":{\"source\":\"iana\"},\"application/soap+fastinfoset\":{\"source\":\"iana\"},\"application/soap+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sparql-query\":{\"source\":\"iana\",\"extensions\":[\"rq\"]},\"application/sparql-results+xml\":{\"source\":\"iana\",\"extensions\":[\"srx\"]},\"application/spirits-event+xml\":{\"source\":\"iana\"},\"application/sql\":{\"source\":\"iana\"},\"application/srgs\":{\"source\":\"iana\",\"extensions\":[\"gram\"]},\"application/srgs+xml\":{\"source\":\"iana\",\"extensions\":[\"grxml\"]},\"application/sru+xml\":{\"source\":\"iana\",\"extensions\":[\"sru\"]},\"application/ssdl+xml\":{\"source\":\"apache\",\"extensions\":[\"ssdl\"]},\"application/ssml+xml\":{\"source\":\"iana\",\"extensions\":[\"ssml\"]},\"application/tamp-apex-update\":{\"source\":\"iana\"},\"application/tamp-apex-update-confirm\":{\"source\":\"iana\"},\"application/tamp-community-update\":{\"source\":\"iana\"},\"application/tamp-community-update-confirm\":{\"source\":\"iana\"},\"application/tamp-error\":{\"source\":\"iana\"},\"application/tamp-sequence-adjust\":{\"source\":\"iana\"},\"application/tamp-sequence-adjust-confirm\":{\"source\":\"iana\"},\"application/tamp-status-query\":{\"source\":\"iana\"},\"application/tamp-status-response\":{\"source\":\"iana\"},\"application/tamp-update\":{\"source\":\"iana\"},\"application/tamp-update-confirm\":{\"source\":\"iana\"},\"application/tar\":{\"compressible\":true},\"application/tei+xml\":{\"source\":\"iana\",\"extensions\":[\"tei\",\"teicorpus\"]},\"application/thraud+xml\":{\"source\":\"iana\",\"extensions\":[\"tfi\"]},\"application/timestamp-query\":{\"source\":\"iana\"},\"application/timestamp-reply\":{\"source\":\"iana\"},\"application/timestamped-data\":{\"source\":\"iana\",\"extensions\":[\"tsd\"]},\"application/tnauthlist\":{\"source\":\"iana\"},\"application/trig\":{\"source\":\"iana\"},\"application/ttml+xml\":{\"source\":\"iana\"},\"application/tve-trigger\":{\"source\":\"iana\"},\"application/ulpfec\":{\"source\":\"iana\"},\"application/urc-grpsheet+xml\":{\"source\":\"iana\"},\"application/urc-ressheet+xml\":{\"source\":\"iana\"},\"application/urc-targetdesc+xml\":{\"source\":\"iana\"},\"application/urc-uisocketdesc+xml\":{\"source\":\"iana\"},\"application/vcard+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vcard+xml\":{\"source\":\"iana\"},\"application/vemmi\":{\"source\":\"iana\"},\"application/vividence.scriptfile\":{\"source\":\"apache\"},\"application/vnd.1000minds.decision-model+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp-prose+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp-prose-pc3ch+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp-v2x-local-service-information\":{\"source\":\"iana\"},\"application/vnd.3gpp.access-transfer-events+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.bsf+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.gmop+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcptt-affiliation-command+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcptt-floor-request+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcptt-info+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcptt-location-info+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcptt-mbms-usage-info+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcptt-signed+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.mid-call+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.pic-bw-large\":{\"source\":\"iana\",\"extensions\":[\"plb\"]},\"application/vnd.3gpp.pic-bw-small\":{\"source\":\"iana\",\"extensions\":[\"psb\"]},\"application/vnd.3gpp.pic-bw-var\":{\"source\":\"iana\",\"extensions\":[\"pvb\"]},\"application/vnd.3gpp.sms\":{\"source\":\"iana\"},\"application/vnd.3gpp.sms+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.srvcc-ext+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.srvcc-info+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.state-and-event-info+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp.ussd+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp2.bcmcsinfo+xml\":{\"source\":\"iana\"},\"application/vnd.3gpp2.sms\":{\"source\":\"iana\"},\"application/vnd.3gpp2.tcap\":{\"source\":\"iana\",\"extensions\":[\"tcap\"]},\"application/vnd.3lightssoftware.imagescal\":{\"source\":\"iana\"},\"application/vnd.3m.post-it-notes\":{\"source\":\"iana\",\"extensions\":[\"pwn\"]},\"application/vnd.accpac.simply.aso\":{\"source\":\"iana\",\"extensions\":[\"aso\"]},\"application/vnd.accpac.simply.imp\":{\"source\":\"iana\",\"extensions\":[\"imp\"]},\"application/vnd.acucobol\":{\"source\":\"iana\",\"extensions\":[\"acu\"]},\"application/vnd.acucorp\":{\"source\":\"iana\",\"extensions\":[\"atc\",\"acutc\"]},\"application/vnd.adobe.air-application-installer-package+zip\":{\"source\":\"apache\",\"extensions\":[\"air\"]},\"application/vnd.adobe.flash.movie\":{\"source\":\"iana\"},\"application/vnd.adobe.formscentral.fcdt\":{\"source\":\"iana\",\"extensions\":[\"fcdt\"]},\"application/vnd.adobe.fxp\":{\"source\":\"iana\",\"extensions\":[\"fxp\",\"fxpl\"]},\"application/vnd.adobe.partial-upload\":{\"source\":\"iana\"},\"application/vnd.adobe.xdp+xml\":{\"source\":\"iana\",\"extensions\":[\"xdp\"]},\"application/vnd.adobe.xfdf\":{\"source\":\"iana\",\"extensions\":[\"xfdf\"]},\"application/vnd.aether.imp\":{\"source\":\"iana\"},\"application/vnd.ah-barcode\":{\"source\":\"iana\"},\"application/vnd.ahead.space\":{\"source\":\"iana\",\"extensions\":[\"ahead\"]},\"application/vnd.airzip.filesecure.azf\":{\"source\":\"iana\",\"extensions\":[\"azf\"]},\"application/vnd.airzip.filesecure.azs\":{\"source\":\"iana\",\"extensions\":[\"azs\"]},\"application/vnd.amadeus+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.amazon.ebook\":{\"source\":\"apache\",\"extensions\":[\"azw\"]},\"application/vnd.amazon.mobi8-ebook\":{\"source\":\"iana\"},\"application/vnd.americandynamics.acc\":{\"source\":\"iana\",\"extensions\":[\"acc\"]},\"application/vnd.amiga.ami\":{\"source\":\"iana\",\"extensions\":[\"ami\"]},\"application/vnd.amundsen.maze+xml\":{\"source\":\"iana\"},\"application/vnd.android.package-archive\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"apk\"]},\"application/vnd.anki\":{\"source\":\"iana\"},\"application/vnd.anser-web-certificate-issue-initiation\":{\"source\":\"iana\",\"extensions\":[\"cii\"]},\"application/vnd.anser-web-funds-transfer-initiation\":{\"source\":\"apache\",\"extensions\":[\"fti\"]},\"application/vnd.antix.game-component\":{\"source\":\"iana\",\"extensions\":[\"atx\"]},\"application/vnd.apache.thrift.binary\":{\"source\":\"iana\"},\"application/vnd.apache.thrift.compact\":{\"source\":\"iana\"},\"application/vnd.apache.thrift.json\":{\"source\":\"iana\"},\"application/vnd.api+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.apothekende.reservation+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.apple.installer+xml\":{\"source\":\"iana\",\"extensions\":[\"mpkg\"]},\"application/vnd.apple.mpegurl\":{\"source\":\"iana\",\"extensions\":[\"m3u8\"]},\"application/vnd.apple.pkpass\":{\"compressible\":false,\"extensions\":[\"pkpass\"]},\"application/vnd.arastra.swi\":{\"source\":\"iana\"},\"application/vnd.aristanetworks.swi\":{\"source\":\"iana\",\"extensions\":[\"swi\"]},\"application/vnd.artsquare\":{\"source\":\"iana\"},\"application/vnd.astraea-software.iota\":{\"source\":\"iana\",\"extensions\":[\"iota\"]},\"application/vnd.audiograph\":{\"source\":\"iana\",\"extensions\":[\"aep\"]},\"application/vnd.autopackage\":{\"source\":\"iana\"},\"application/vnd.avalon+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.avistar+xml\":{\"source\":\"iana\"},\"application/vnd.balsamiq.bmml+xml\":{\"source\":\"iana\"},\"application/vnd.balsamiq.bmpr\":{\"source\":\"iana\"},\"application/vnd.bbf.usp.msg\":{\"source\":\"iana\"},\"application/vnd.bbf.usp.msg+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.bekitzur-stech+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.bint.med-content\":{\"source\":\"iana\"},\"application/vnd.biopax.rdf+xml\":{\"source\":\"iana\"},\"application/vnd.blink-idb-value-wrapper\":{\"source\":\"iana\"},\"application/vnd.blueice.multipass\":{\"source\":\"iana\",\"extensions\":[\"mpm\"]},\"application/vnd.bluetooth.ep.oob\":{\"source\":\"iana\"},\"application/vnd.bluetooth.le.oob\":{\"source\":\"iana\"},\"application/vnd.bmi\":{\"source\":\"iana\",\"extensions\":[\"bmi\"]},\"application/vnd.businessobjects\":{\"source\":\"iana\",\"extensions\":[\"rep\"]},\"application/vnd.cab-jscript\":{\"source\":\"iana\"},\"application/vnd.canon-cpdl\":{\"source\":\"iana\"},\"application/vnd.canon-lips\":{\"source\":\"iana\"},\"application/vnd.capasystems-pg+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cendio.thinlinc.clientconf\":{\"source\":\"iana\"},\"application/vnd.century-systems.tcp_stream\":{\"source\":\"iana\"},\"application/vnd.chemdraw+xml\":{\"source\":\"iana\",\"extensions\":[\"cdxml\"]},\"application/vnd.chess-pgn\":{\"source\":\"iana\"},\"application/vnd.chipnuts.karaoke-mmd\":{\"source\":\"iana\",\"extensions\":[\"mmd\"]},\"application/vnd.cinderella\":{\"source\":\"iana\",\"extensions\":[\"cdy\"]},\"application/vnd.cirpack.isdn-ext\":{\"source\":\"iana\"},\"application/vnd.citationstyles.style+xml\":{\"source\":\"iana\"},\"application/vnd.claymore\":{\"source\":\"iana\",\"extensions\":[\"cla\"]},\"application/vnd.cloanto.rp9\":{\"source\":\"iana\",\"extensions\":[\"rp9\"]},\"application/vnd.clonk.c4group\":{\"source\":\"iana\",\"extensions\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]},\"application/vnd.cluetrust.cartomobile-config\":{\"source\":\"iana\",\"extensions\":[\"c11amc\"]},\"application/vnd.cluetrust.cartomobile-config-pkg\":{\"source\":\"iana\",\"extensions\":[\"c11amz\"]},\"application/vnd.coffeescript\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.document\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.document-template\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.presentation\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.presentation-template\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.spreadsheet\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.spreadsheet-template\":{\"source\":\"iana\"},\"application/vnd.collection+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.collection.doc+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.collection.next+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.comicbook+zip\":{\"source\":\"iana\"},\"application/vnd.comicbook-rar\":{\"source\":\"iana\"},\"application/vnd.commerce-battelle\":{\"source\":\"iana\"},\"application/vnd.commonspace\":{\"source\":\"iana\",\"extensions\":[\"csp\"]},\"application/vnd.contact.cmsg\":{\"source\":\"iana\",\"extensions\":[\"cdbcmsg\"]},\"application/vnd.coreos.ignition+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cosmocaller\":{\"source\":\"iana\",\"extensions\":[\"cmc\"]},\"application/vnd.crick.clicker\":{\"source\":\"iana\",\"extensions\":[\"clkx\"]},\"application/vnd.crick.clicker.keyboard\":{\"source\":\"iana\",\"extensions\":[\"clkk\"]},\"application/vnd.crick.clicker.palette\":{\"source\":\"iana\",\"extensions\":[\"clkp\"]},\"application/vnd.crick.clicker.template\":{\"source\":\"iana\",\"extensions\":[\"clkt\"]},\"application/vnd.crick.clicker.wordbank\":{\"source\":\"iana\",\"extensions\":[\"clkw\"]},\"application/vnd.criticaltools.wbs+xml\":{\"source\":\"iana\",\"extensions\":[\"wbs\"]},\"application/vnd.ctc-posml\":{\"source\":\"iana\",\"extensions\":[\"pml\"]},\"application/vnd.ctct.ws+xml\":{\"source\":\"iana\"},\"application/vnd.cups-pdf\":{\"source\":\"iana\"},\"application/vnd.cups-postscript\":{\"source\":\"iana\"},\"application/vnd.cups-ppd\":{\"source\":\"iana\",\"extensions\":[\"ppd\"]},\"application/vnd.cups-raster\":{\"source\":\"iana\"},\"application/vnd.cups-raw\":{\"source\":\"iana\"},\"application/vnd.curl\":{\"source\":\"iana\"},\"application/vnd.curl.car\":{\"source\":\"apache\",\"extensions\":[\"car\"]},\"application/vnd.curl.pcurl\":{\"source\":\"apache\",\"extensions\":[\"pcurl\"]},\"application/vnd.cyan.dean.root+xml\":{\"source\":\"iana\"},\"application/vnd.cybank\":{\"source\":\"iana\"},\"application/vnd.d2l.coursepackage1p0+zip\":{\"source\":\"iana\"},\"application/vnd.dart\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dart\"]},\"application/vnd.data-vision.rdz\":{\"source\":\"iana\",\"extensions\":[\"rdz\"]},\"application/vnd.datapackage+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dataresource+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.debian.binary-package\":{\"source\":\"iana\"},\"application/vnd.dece.data\":{\"source\":\"iana\",\"extensions\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]},\"application/vnd.dece.ttml+xml\":{\"source\":\"iana\",\"extensions\":[\"uvt\",\"uvvt\"]},\"application/vnd.dece.unspecified\":{\"source\":\"iana\",\"extensions\":[\"uvx\",\"uvvx\"]},\"application/vnd.dece.zip\":{\"source\":\"iana\",\"extensions\":[\"uvz\",\"uvvz\"]},\"application/vnd.denovo.fcselayout-link\":{\"source\":\"iana\",\"extensions\":[\"fe_launch\"]},\"application/vnd.desmume-movie\":{\"source\":\"iana\"},\"application/vnd.desmume.movie\":{\"source\":\"apache\"},\"application/vnd.dir-bi.plate-dl-nosuffix\":{\"source\":\"iana\"},\"application/vnd.dm.delegation+xml\":{\"source\":\"iana\"},\"application/vnd.dna\":{\"source\":\"iana\",\"extensions\":[\"dna\"]},\"application/vnd.document+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dolby.mlp\":{\"source\":\"apache\",\"extensions\":[\"mlp\"]},\"application/vnd.dolby.mobile.1\":{\"source\":\"iana\"},\"application/vnd.dolby.mobile.2\":{\"source\":\"iana\"},\"application/vnd.doremir.scorecloud-binary-document\":{\"source\":\"iana\"},\"application/vnd.dpgraph\":{\"source\":\"iana\",\"extensions\":[\"dpg\"]},\"application/vnd.dreamfactory\":{\"source\":\"iana\",\"extensions\":[\"dfac\"]},\"application/vnd.drive+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ds-keypoint\":{\"source\":\"apache\",\"extensions\":[\"kpxx\"]},\"application/vnd.dtg.local\":{\"source\":\"iana\"},\"application/vnd.dtg.local.flash\":{\"source\":\"iana\"},\"application/vnd.dtg.local.html\":{\"source\":\"iana\"},\"application/vnd.dvb.ait\":{\"source\":\"iana\",\"extensions\":[\"ait\"]},\"application/vnd.dvb.dvbj\":{\"source\":\"iana\"},\"application/vnd.dvb.esgcontainer\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcdftnotifaccess\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcesgaccess\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcesgaccess2\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcesgpdd\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcroaming\":{\"source\":\"iana\"},\"application/vnd.dvb.iptv.alfec-base\":{\"source\":\"iana\"},\"application/vnd.dvb.iptv.alfec-enhancement\":{\"source\":\"iana\"},\"application/vnd.dvb.notif-aggregate-root+xml\":{\"source\":\"iana\"},\"application/vnd.dvb.notif-container+xml\":{\"source\":\"iana\"},\"application/vnd.dvb.notif-generic+xml\":{\"source\":\"iana\"},\"application/vnd.dvb.notif-ia-msglist+xml\":{\"source\":\"iana\"},\"application/vnd.dvb.notif-ia-registration-request+xml\":{\"source\":\"iana\"},\"application/vnd.dvb.notif-ia-registration-response+xml\":{\"source\":\"iana\"},\"application/vnd.dvb.notif-init+xml\":{\"source\":\"iana\"},\"application/vnd.dvb.pfr\":{\"source\":\"iana\"},\"application/vnd.dvb.service\":{\"source\":\"iana\",\"extensions\":[\"svc\"]},\"application/vnd.dxr\":{\"source\":\"iana\"},\"application/vnd.dynageo\":{\"source\":\"iana\",\"extensions\":[\"geo\"]},\"application/vnd.dzr\":{\"source\":\"iana\"},\"application/vnd.easykaraoke.cdgdownload\":{\"source\":\"iana\"},\"application/vnd.ecdis-update\":{\"source\":\"iana\"},\"application/vnd.ecip.rlp\":{\"source\":\"iana\"},\"application/vnd.ecowin.chart\":{\"source\":\"iana\",\"extensions\":[\"mag\"]},\"application/vnd.ecowin.filerequest\":{\"source\":\"iana\"},\"application/vnd.ecowin.fileupdate\":{\"source\":\"iana\"},\"application/vnd.ecowin.series\":{\"source\":\"iana\"},\"application/vnd.ecowin.seriesrequest\":{\"source\":\"iana\"},\"application/vnd.ecowin.seriesupdate\":{\"source\":\"iana\"},\"application/vnd.efi.img\":{\"source\":\"iana\"},\"application/vnd.efi.iso\":{\"source\":\"iana\"},\"application/vnd.emclient.accessrequest+xml\":{\"source\":\"iana\"},\"application/vnd.enliven\":{\"source\":\"iana\",\"extensions\":[\"nml\"]},\"application/vnd.enphase.envoy\":{\"source\":\"iana\"},\"application/vnd.eprints.data+xml\":{\"source\":\"iana\"},\"application/vnd.epson.esf\":{\"source\":\"iana\",\"extensions\":[\"esf\"]},\"application/vnd.epson.msf\":{\"source\":\"iana\",\"extensions\":[\"msf\"]},\"application/vnd.epson.quickanime\":{\"source\":\"iana\",\"extensions\":[\"qam\"]},\"application/vnd.epson.salt\":{\"source\":\"iana\",\"extensions\":[\"slt\"]},\"application/vnd.epson.ssf\":{\"source\":\"iana\",\"extensions\":[\"ssf\"]},\"application/vnd.ericsson.quickcall\":{\"source\":\"iana\"},\"application/vnd.espass-espass+zip\":{\"source\":\"iana\"},\"application/vnd.eszigno3+xml\":{\"source\":\"iana\",\"extensions\":[\"es3\",\"et3\"]},\"application/vnd.etsi.aoc+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.asic-e+zip\":{\"source\":\"iana\"},\"application/vnd.etsi.asic-s+zip\":{\"source\":\"iana\"},\"application/vnd.etsi.cug+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.iptvcommand+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.iptvdiscovery+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.iptvprofile+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.iptvsad-bc+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.iptvsad-cod+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.iptvsad-npvr+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.iptvservice+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.iptvsync+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.iptvueprofile+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.mcid+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.mheg5\":{\"source\":\"iana\"},\"application/vnd.etsi.overload-control-policy-dataset+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.pstn+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.sci+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.simservs+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.timestamp-token\":{\"source\":\"iana\"},\"application/vnd.etsi.tsl+xml\":{\"source\":\"iana\"},\"application/vnd.etsi.tsl.der\":{\"source\":\"iana\"},\"application/vnd.eudora.data\":{\"source\":\"iana\"},\"application/vnd.evolv.ecig.profile\":{\"source\":\"iana\"},\"application/vnd.evolv.ecig.settings\":{\"source\":\"iana\"},\"application/vnd.evolv.ecig.theme\":{\"source\":\"iana\"},\"application/vnd.ezpix-album\":{\"source\":\"iana\",\"extensions\":[\"ez2\"]},\"application/vnd.ezpix-package\":{\"source\":\"iana\",\"extensions\":[\"ez3\"]},\"application/vnd.f-secure.mobile\":{\"source\":\"iana\"},\"application/vnd.fastcopy-disk-image\":{\"source\":\"iana\"},\"application/vnd.fdf\":{\"source\":\"iana\",\"extensions\":[\"fdf\"]},\"application/vnd.fdsn.mseed\":{\"source\":\"iana\",\"extensions\":[\"mseed\"]},\"application/vnd.fdsn.seed\":{\"source\":\"iana\",\"extensions\":[\"seed\",\"dataless\"]},\"application/vnd.ffsns\":{\"source\":\"iana\"},\"application/vnd.filmit.zfc\":{\"source\":\"iana\"},\"application/vnd.fints\":{\"source\":\"iana\"},\"application/vnd.firemonkeys.cloudcell\":{\"source\":\"iana\"},\"application/vnd.flographit\":{\"source\":\"iana\",\"extensions\":[\"gph\"]},\"application/vnd.fluxtime.clip\":{\"source\":\"iana\",\"extensions\":[\"ftc\"]},\"application/vnd.font-fontforge-sfd\":{\"source\":\"iana\"},\"application/vnd.framemaker\":{\"source\":\"iana\",\"extensions\":[\"fm\",\"frame\",\"maker\",\"book\"]},\"application/vnd.frogans.fnc\":{\"source\":\"iana\",\"extensions\":[\"fnc\"]},\"application/vnd.frogans.ltf\":{\"source\":\"iana\",\"extensions\":[\"ltf\"]},\"application/vnd.fsc.weblaunch\":{\"source\":\"iana\",\"extensions\":[\"fsc\"]},\"application/vnd.fujitsu.oasys\":{\"source\":\"iana\",\"extensions\":[\"oas\"]},\"application/vnd.fujitsu.oasys2\":{\"source\":\"iana\",\"extensions\":[\"oa2\"]},\"application/vnd.fujitsu.oasys3\":{\"source\":\"iana\",\"extensions\":[\"oa3\"]},\"application/vnd.fujitsu.oasysgp\":{\"source\":\"iana\",\"extensions\":[\"fg5\"]},\"application/vnd.fujitsu.oasysprs\":{\"source\":\"iana\",\"extensions\":[\"bh2\"]},\"application/vnd.fujixerox.art-ex\":{\"source\":\"iana\"},\"application/vnd.fujixerox.art4\":{\"source\":\"iana\"},\"application/vnd.fujixerox.ddd\":{\"source\":\"iana\",\"extensions\":[\"ddd\"]},\"application/vnd.fujixerox.docuworks\":{\"source\":\"iana\",\"extensions\":[\"xdw\"]},\"application/vnd.fujixerox.docuworks.binder\":{\"source\":\"iana\",\"extensions\":[\"xbd\"]},\"application/vnd.fujixerox.docuworks.container\":{\"source\":\"iana\"},\"application/vnd.fujixerox.hbpl\":{\"source\":\"iana\"},\"application/vnd.fut-misnet\":{\"source\":\"iana\"},\"application/vnd.fuzzysheet\":{\"source\":\"iana\",\"extensions\":[\"fzs\"]},\"application/vnd.genomatix.tuxedo\":{\"source\":\"iana\",\"extensions\":[\"txd\"]},\"application/vnd.geo+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.geocube+xml\":{\"source\":\"iana\"},\"application/vnd.geogebra.file\":{\"source\":\"iana\",\"extensions\":[\"ggb\"]},\"application/vnd.geogebra.tool\":{\"source\":\"iana\",\"extensions\":[\"ggt\"]},\"application/vnd.geometry-explorer\":{\"source\":\"iana\",\"extensions\":[\"gex\",\"gre\"]},\"application/vnd.geonext\":{\"source\":\"iana\",\"extensions\":[\"gxt\"]},\"application/vnd.geoplan\":{\"source\":\"iana\",\"extensions\":[\"g2w\"]},\"application/vnd.geospace\":{\"source\":\"iana\",\"extensions\":[\"g3w\"]},\"application/vnd.gerber\":{\"source\":\"iana\"},\"application/vnd.globalplatform.card-content-mgt\":{\"source\":\"iana\"},\"application/vnd.globalplatform.card-content-mgt-response\":{\"source\":\"iana\"},\"application/vnd.gmx\":{\"source\":\"iana\",\"extensions\":[\"gmx\"]},\"application/vnd.google-apps.document\":{\"compressible\":false,\"extensions\":[\"gdoc\"]},\"application/vnd.google-apps.presentation\":{\"compressible\":false,\"extensions\":[\"gslides\"]},\"application/vnd.google-apps.spreadsheet\":{\"compressible\":false,\"extensions\":[\"gsheet\"]},\"application/vnd.google-earth.kml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"kml\"]},\"application/vnd.google-earth.kmz\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"kmz\"]},\"application/vnd.gov.sk.e-form+xml\":{\"source\":\"iana\"},\"application/vnd.gov.sk.e-form+zip\":{\"source\":\"iana\"},\"application/vnd.gov.sk.xmldatacontainer+xml\":{\"source\":\"iana\"},\"application/vnd.grafeq\":{\"source\":\"iana\",\"extensions\":[\"gqf\",\"gqs\"]},\"application/vnd.gridmp\":{\"source\":\"iana\"},\"application/vnd.groove-account\":{\"source\":\"iana\",\"extensions\":[\"gac\"]},\"application/vnd.groove-help\":{\"source\":\"iana\",\"extensions\":[\"ghf\"]},\"application/vnd.groove-identity-message\":{\"source\":\"iana\",\"extensions\":[\"gim\"]},\"application/vnd.groove-injector\":{\"source\":\"iana\",\"extensions\":[\"grv\"]},\"application/vnd.groove-tool-message\":{\"source\":\"iana\",\"extensions\":[\"gtm\"]},\"application/vnd.groove-tool-template\":{\"source\":\"iana\",\"extensions\":[\"tpl\"]},\"application/vnd.groove-vcard\":{\"source\":\"iana\",\"extensions\":[\"vcg\"]},\"application/vnd.hal+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hal+xml\":{\"source\":\"iana\",\"extensions\":[\"hal\"]},\"application/vnd.handheld-entertainment+xml\":{\"source\":\"iana\",\"extensions\":[\"zmm\"]},\"application/vnd.hbci\":{\"source\":\"iana\",\"extensions\":[\"hbci\"]},\"application/vnd.hc+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hcl-bireports\":{\"source\":\"iana\"},\"application/vnd.hdt\":{\"source\":\"iana\"},\"application/vnd.heroku+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hhe.lesson-player\":{\"source\":\"iana\",\"extensions\":[\"les\"]},\"application/vnd.hp-hpgl\":{\"source\":\"iana\",\"extensions\":[\"hpgl\"]},\"application/vnd.hp-hpid\":{\"source\":\"iana\",\"extensions\":[\"hpid\"]},\"application/vnd.hp-hps\":{\"source\":\"iana\",\"extensions\":[\"hps\"]},\"application/vnd.hp-jlyt\":{\"source\":\"iana\",\"extensions\":[\"jlt\"]},\"application/vnd.hp-pcl\":{\"source\":\"iana\",\"extensions\":[\"pcl\"]},\"application/vnd.hp-pclxl\":{\"source\":\"iana\",\"extensions\":[\"pclxl\"]},\"application/vnd.httphone\":{\"source\":\"iana\"},\"application/vnd.hydrostatix.sof-data\":{\"source\":\"iana\",\"extensions\":[\"sfd-hdstx\"]},\"application/vnd.hyper-item+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hyperdrive+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hzn-3d-crossword\":{\"source\":\"iana\"},\"application/vnd.ibm.afplinedata\":{\"source\":\"iana\"},\"application/vnd.ibm.electronic-media\":{\"source\":\"iana\"},\"application/vnd.ibm.minipay\":{\"source\":\"iana\",\"extensions\":[\"mpy\"]},\"application/vnd.ibm.modcap\":{\"source\":\"iana\",\"extensions\":[\"afp\",\"listafp\",\"list3820\"]},\"application/vnd.ibm.rights-management\":{\"source\":\"iana\",\"extensions\":[\"irm\"]},\"application/vnd.ibm.secure-container\":{\"source\":\"iana\",\"extensions\":[\"sc\"]},\"application/vnd.iccprofile\":{\"source\":\"iana\",\"extensions\":[\"icc\",\"icm\"]},\"application/vnd.ieee.1905\":{\"source\":\"iana\"},\"application/vnd.igloader\":{\"source\":\"iana\",\"extensions\":[\"igl\"]},\"application/vnd.imagemeter.folder+zip\":{\"source\":\"iana\"},\"application/vnd.imagemeter.image+zip\":{\"source\":\"iana\"},\"application/vnd.immervision-ivp\":{\"source\":\"iana\",\"extensions\":[\"ivp\"]},\"application/vnd.immervision-ivu\":{\"source\":\"iana\",\"extensions\":[\"ivu\"]},\"application/vnd.ims.imsccv1p1\":{\"source\":\"iana\"},\"application/vnd.ims.imsccv1p2\":{\"source\":\"iana\"},\"application/vnd.ims.imsccv1p3\":{\"source\":\"iana\"},\"application/vnd.ims.lis.v2.result+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolconsumerprofile+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolproxy+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolproxy.id+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolsettings+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolsettings.simple+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.informedcontrol.rms+xml\":{\"source\":\"iana\"},\"application/vnd.informix-visionary\":{\"source\":\"iana\"},\"application/vnd.infotech.project\":{\"source\":\"iana\"},\"application/vnd.infotech.project+xml\":{\"source\":\"iana\"},\"application/vnd.innopath.wamp.notification\":{\"source\":\"iana\"},\"application/vnd.insors.igm\":{\"source\":\"iana\",\"extensions\":[\"igm\"]},\"application/vnd.intercon.formnet\":{\"source\":\"iana\",\"extensions\":[\"xpw\",\"xpx\"]},\"application/vnd.intergeo\":{\"source\":\"iana\",\"extensions\":[\"i2g\"]},\"application/vnd.intertrust.digibox\":{\"source\":\"iana\"},\"application/vnd.intertrust.nncp\":{\"source\":\"iana\"},\"application/vnd.intu.qbo\":{\"source\":\"iana\",\"extensions\":[\"qbo\"]},\"application/vnd.intu.qfx\":{\"source\":\"iana\",\"extensions\":[\"qfx\"]},\"application/vnd.iptc.g2.catalogitem+xml\":{\"source\":\"iana\"},\"application/vnd.iptc.g2.conceptitem+xml\":{\"source\":\"iana\"},\"application/vnd.iptc.g2.knowledgeitem+xml\":{\"source\":\"iana\"},\"application/vnd.iptc.g2.newsitem+xml\":{\"source\":\"iana\"},\"application/vnd.iptc.g2.newsmessage+xml\":{\"source\":\"iana\"},\"application/vnd.iptc.g2.packageitem+xml\":{\"source\":\"iana\"},\"application/vnd.iptc.g2.planningitem+xml\":{\"source\":\"iana\"},\"application/vnd.ipunplugged.rcprofile\":{\"source\":\"iana\",\"extensions\":[\"rcprofile\"]},\"application/vnd.irepository.package+xml\":{\"source\":\"iana\",\"extensions\":[\"irp\"]},\"application/vnd.is-xpr\":{\"source\":\"iana\",\"extensions\":[\"xpr\"]},\"application/vnd.isac.fcs\":{\"source\":\"iana\",\"extensions\":[\"fcs\"]},\"application/vnd.jam\":{\"source\":\"iana\",\"extensions\":[\"jam\"]},\"application/vnd.japannet-directory-service\":{\"source\":\"iana\"},\"application/vnd.japannet-jpnstore-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-payment-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-registration\":{\"source\":\"iana\"},\"application/vnd.japannet-registration-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-setstore-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-verification\":{\"source\":\"iana\"},\"application/vnd.japannet-verification-wakeup\":{\"source\":\"iana\"},\"application/vnd.jcp.javame.midlet-rms\":{\"source\":\"iana\",\"extensions\":[\"rms\"]},\"application/vnd.jisp\":{\"source\":\"iana\",\"extensions\":[\"jisp\"]},\"application/vnd.joost.joda-archive\":{\"source\":\"iana\",\"extensions\":[\"joda\"]},\"application/vnd.jsk.isdn-ngn\":{\"source\":\"iana\"},\"application/vnd.kahootz\":{\"source\":\"iana\",\"extensions\":[\"ktz\",\"ktr\"]},\"application/vnd.kde.karbon\":{\"source\":\"iana\",\"extensions\":[\"karbon\"]},\"application/vnd.kde.kchart\":{\"source\":\"iana\",\"extensions\":[\"chrt\"]},\"application/vnd.kde.kformula\":{\"source\":\"iana\",\"extensions\":[\"kfo\"]},\"application/vnd.kde.kivio\":{\"source\":\"iana\",\"extensions\":[\"flw\"]},\"application/vnd.kde.kontour\":{\"source\":\"iana\",\"extensions\":[\"kon\"]},\"application/vnd.kde.kpresenter\":{\"source\":\"iana\",\"extensions\":[\"kpr\",\"kpt\"]},\"application/vnd.kde.kspread\":{\"source\":\"iana\",\"extensions\":[\"ksp\"]},\"application/vnd.kde.kword\":{\"source\":\"iana\",\"extensions\":[\"kwd\",\"kwt\"]},\"application/vnd.kenameaapp\":{\"source\":\"iana\",\"extensions\":[\"htke\"]},\"application/vnd.kidspiration\":{\"source\":\"iana\",\"extensions\":[\"kia\"]},\"application/vnd.kinar\":{\"source\":\"iana\",\"extensions\":[\"kne\",\"knp\"]},\"application/vnd.koan\":{\"source\":\"iana\",\"extensions\":[\"skp\",\"skd\",\"skt\",\"skm\"]},\"application/vnd.kodak-descriptor\":{\"source\":\"iana\",\"extensions\":[\"sse\"]},\"application/vnd.las.las+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.las.las+xml\":{\"source\":\"iana\",\"extensions\":[\"lasxml\"]},\"application/vnd.liberty-request+xml\":{\"source\":\"iana\"},\"application/vnd.llamagraphics.life-balance.desktop\":{\"source\":\"iana\",\"extensions\":[\"lbd\"]},\"application/vnd.llamagraphics.life-balance.exchange+xml\":{\"source\":\"iana\",\"extensions\":[\"lbe\"]},\"application/vnd.lotus-1-2-3\":{\"source\":\"iana\",\"extensions\":[\"123\"]},\"application/vnd.lotus-approach\":{\"source\":\"iana\",\"extensions\":[\"apr\"]},\"application/vnd.lotus-freelance\":{\"source\":\"iana\",\"extensions\":[\"pre\"]},\"application/vnd.lotus-notes\":{\"source\":\"iana\",\"extensions\":[\"nsf\"]},\"application/vnd.lotus-organizer\":{\"source\":\"iana\",\"extensions\":[\"org\"]},\"application/vnd.lotus-screencam\":{\"source\":\"iana\",\"extensions\":[\"scm\"]},\"application/vnd.lotus-wordpro\":{\"source\":\"iana\",\"extensions\":[\"lwp\"]},\"application/vnd.macports.portpkg\":{\"source\":\"iana\",\"extensions\":[\"portpkg\"]},\"application/vnd.mapbox-vector-tile\":{\"source\":\"iana\"},\"application/vnd.marlin.drm.actiontoken+xml\":{\"source\":\"iana\"},\"application/vnd.marlin.drm.conftoken+xml\":{\"source\":\"iana\"},\"application/vnd.marlin.drm.license+xml\":{\"source\":\"iana\"},\"application/vnd.marlin.drm.mdcf\":{\"source\":\"iana\"},\"application/vnd.mason+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.maxmind.maxmind-db\":{\"source\":\"iana\"},\"application/vnd.mcd\":{\"source\":\"iana\",\"extensions\":[\"mcd\"]},\"application/vnd.medcalcdata\":{\"source\":\"iana\",\"extensions\":[\"mc1\"]},\"application/vnd.mediastation.cdkey\":{\"source\":\"iana\",\"extensions\":[\"cdkey\"]},\"application/vnd.meridian-slingshot\":{\"source\":\"iana\"},\"application/vnd.mfer\":{\"source\":\"iana\",\"extensions\":[\"mwf\"]},\"application/vnd.mfmp\":{\"source\":\"iana\",\"extensions\":[\"mfm\"]},\"application/vnd.micro+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.micrografx.flo\":{\"source\":\"iana\",\"extensions\":[\"flo\"]},\"application/vnd.micrografx.igx\":{\"source\":\"iana\",\"extensions\":[\"igx\"]},\"application/vnd.microsoft.portable-executable\":{\"source\":\"iana\"},\"application/vnd.microsoft.windows.thumbnail-cache\":{\"source\":\"iana\"},\"application/vnd.miele+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.mif\":{\"source\":\"iana\",\"extensions\":[\"mif\"]},\"application/vnd.minisoft-hp3000-save\":{\"source\":\"iana\"},\"application/vnd.mitsubishi.misty-guard.trustweb\":{\"source\":\"iana\"},\"application/vnd.mobius.daf\":{\"source\":\"iana\",\"extensions\":[\"daf\"]},\"application/vnd.mobius.dis\":{\"source\":\"iana\",\"extensions\":[\"dis\"]},\"application/vnd.mobius.mbk\":{\"source\":\"iana\",\"extensions\":[\"mbk\"]},\"application/vnd.mobius.mqy\":{\"source\":\"iana\",\"extensions\":[\"mqy\"]},\"application/vnd.mobius.msl\":{\"source\":\"iana\",\"extensions\":[\"msl\"]},\"application/vnd.mobius.plc\":{\"source\":\"iana\",\"extensions\":[\"plc\"]},\"application/vnd.mobius.txf\":{\"source\":\"iana\",\"extensions\":[\"txf\"]},\"application/vnd.mophun.application\":{\"source\":\"iana\",\"extensions\":[\"mpn\"]},\"application/vnd.mophun.certificate\":{\"source\":\"iana\",\"extensions\":[\"mpc\"]},\"application/vnd.motorola.flexsuite\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.adsi\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.fis\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.gotap\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.kmr\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.ttc\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.wem\":{\"source\":\"iana\"},\"application/vnd.motorola.iprm\":{\"source\":\"iana\"},\"application/vnd.mozilla.xul+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xul\"]},\"application/vnd.ms-3mfdocument\":{\"source\":\"iana\"},\"application/vnd.ms-artgalry\":{\"source\":\"iana\",\"extensions\":[\"cil\"]},\"application/vnd.ms-asf\":{\"source\":\"iana\"},\"application/vnd.ms-cab-compressed\":{\"source\":\"iana\",\"extensions\":[\"cab\"]},\"application/vnd.ms-color.iccprofile\":{\"source\":\"apache\"},\"application/vnd.ms-excel\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]},\"application/vnd.ms-excel.addin.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xlam\"]},\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xlsb\"]},\"application/vnd.ms-excel.sheet.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xlsm\"]},\"application/vnd.ms-excel.template.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xltm\"]},\"application/vnd.ms-fontobject\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"eot\"]},\"application/vnd.ms-htmlhelp\":{\"source\":\"iana\",\"extensions\":[\"chm\"]},\"application/vnd.ms-ims\":{\"source\":\"iana\",\"extensions\":[\"ims\"]},\"application/vnd.ms-lrm\":{\"source\":\"iana\",\"extensions\":[\"lrm\"]},\"application/vnd.ms-office.activex+xml\":{\"source\":\"iana\"},\"application/vnd.ms-officetheme\":{\"source\":\"iana\",\"extensions\":[\"thmx\"]},\"application/vnd.ms-opentype\":{\"source\":\"apache\",\"compressible\":true},\"application/vnd.ms-outlook\":{\"compressible\":false,\"extensions\":[\"msg\"]},\"application/vnd.ms-package.obfuscated-opentype\":{\"source\":\"apache\"},\"application/vnd.ms-pki.seccat\":{\"source\":\"apache\",\"extensions\":[\"cat\"]},\"application/vnd.ms-pki.stl\":{\"source\":\"apache\",\"extensions\":[\"stl\"]},\"application/vnd.ms-playready.initiator+xml\":{\"source\":\"iana\"},\"application/vnd.ms-powerpoint\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ppt\",\"pps\",\"pot\"]},\"application/vnd.ms-powerpoint.addin.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"ppam\"]},\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"pptm\"]},\"application/vnd.ms-powerpoint.slide.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"sldm\"]},\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"ppsm\"]},\"application/vnd.ms-powerpoint.template.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"potm\"]},\"application/vnd.ms-printdevicecapabilities+xml\":{\"source\":\"iana\"},\"application/vnd.ms-printing.printticket+xml\":{\"source\":\"apache\"},\"application/vnd.ms-printschematicket+xml\":{\"source\":\"iana\"},\"application/vnd.ms-project\":{\"source\":\"iana\",\"extensions\":[\"mpp\",\"mpt\"]},\"application/vnd.ms-tnef\":{\"source\":\"iana\"},\"application/vnd.ms-windows.devicepairing\":{\"source\":\"iana\"},\"application/vnd.ms-windows.nwprinting.oob\":{\"source\":\"iana\"},\"application/vnd.ms-windows.printerpairing\":{\"source\":\"iana\"},\"application/vnd.ms-windows.wsd.oob\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.lic-chlg-req\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.lic-resp\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.meter-chlg-req\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.meter-resp\":{\"source\":\"iana\"},\"application/vnd.ms-word.document.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"docm\"]},\"application/vnd.ms-word.template.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"dotm\"]},\"application/vnd.ms-works\":{\"source\":\"iana\",\"extensions\":[\"wps\",\"wks\",\"wcm\",\"wdb\"]},\"application/vnd.ms-wpl\":{\"source\":\"iana\",\"extensions\":[\"wpl\"]},\"application/vnd.ms-xpsdocument\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"xps\"]},\"application/vnd.msa-disk-image\":{\"source\":\"iana\"},\"application/vnd.mseq\":{\"source\":\"iana\",\"extensions\":[\"mseq\"]},\"application/vnd.msign\":{\"source\":\"iana\"},\"application/vnd.multiad.creator\":{\"source\":\"iana\"},\"application/vnd.multiad.creator.cif\":{\"source\":\"iana\"},\"application/vnd.music-niff\":{\"source\":\"iana\"},\"application/vnd.musician\":{\"source\":\"iana\",\"extensions\":[\"mus\"]},\"application/vnd.muvee.style\":{\"source\":\"iana\",\"extensions\":[\"msty\"]},\"application/vnd.mynfc\":{\"source\":\"iana\",\"extensions\":[\"taglet\"]},\"application/vnd.ncd.control\":{\"source\":\"iana\"},\"application/vnd.ncd.reference\":{\"source\":\"iana\"},\"application/vnd.nearst.inv+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nervana\":{\"source\":\"iana\"},\"application/vnd.netfpx\":{\"source\":\"iana\"},\"application/vnd.neurolanguage.nlu\":{\"source\":\"iana\",\"extensions\":[\"nlu\"]},\"application/vnd.nintendo.nitro.rom\":{\"source\":\"iana\"},\"application/vnd.nintendo.snes.rom\":{\"source\":\"iana\"},\"application/vnd.nitf\":{\"source\":\"iana\",\"extensions\":[\"ntf\",\"nitf\"]},\"application/vnd.noblenet-directory\":{\"source\":\"iana\",\"extensions\":[\"nnd\"]},\"application/vnd.noblenet-sealer\":{\"source\":\"iana\",\"extensions\":[\"nns\"]},\"application/vnd.noblenet-web\":{\"source\":\"iana\",\"extensions\":[\"nnw\"]},\"application/vnd.nokia.catalogs\":{\"source\":\"iana\"},\"application/vnd.nokia.conml+wbxml\":{\"source\":\"iana\"},\"application/vnd.nokia.conml+xml\":{\"source\":\"iana\"},\"application/vnd.nokia.iptv.config+xml\":{\"source\":\"iana\"},\"application/vnd.nokia.isds-radio-presets\":{\"source\":\"iana\"},\"application/vnd.nokia.landmark+wbxml\":{\"source\":\"iana\"},\"application/vnd.nokia.landmark+xml\":{\"source\":\"iana\"},\"application/vnd.nokia.landmarkcollection+xml\":{\"source\":\"iana\"},\"application/vnd.nokia.n-gage.ac+xml\":{\"source\":\"iana\"},\"application/vnd.nokia.n-gage.data\":{\"source\":\"iana\",\"extensions\":[\"ngdat\"]},\"application/vnd.nokia.n-gage.symbian.install\":{\"source\":\"iana\",\"extensions\":[\"n-gage\"]},\"application/vnd.nokia.ncd\":{\"source\":\"iana\"},\"application/vnd.nokia.pcd+wbxml\":{\"source\":\"iana\"},\"application/vnd.nokia.pcd+xml\":{\"source\":\"iana\"},\"application/vnd.nokia.radio-preset\":{\"source\":\"iana\",\"extensions\":[\"rpst\"]},\"application/vnd.nokia.radio-presets\":{\"source\":\"iana\",\"extensions\":[\"rpss\"]},\"application/vnd.novadigm.edm\":{\"source\":\"iana\",\"extensions\":[\"edm\"]},\"application/vnd.novadigm.edx\":{\"source\":\"iana\",\"extensions\":[\"edx\"]},\"application/vnd.novadigm.ext\":{\"source\":\"iana\",\"extensions\":[\"ext\"]},\"application/vnd.ntt-local.content-share\":{\"source\":\"iana\"},\"application/vnd.ntt-local.file-transfer\":{\"source\":\"iana\"},\"application/vnd.ntt-local.ogw_remote-access\":{\"source\":\"iana\"},\"application/vnd.ntt-local.sip-ta_remote\":{\"source\":\"iana\"},\"application/vnd.ntt-local.sip-ta_tcp_stream\":{\"source\":\"iana\"},\"application/vnd.oasis.opendocument.chart\":{\"source\":\"iana\",\"extensions\":[\"odc\"]},\"application/vnd.oasis.opendocument.chart-template\":{\"source\":\"iana\",\"extensions\":[\"otc\"]},\"application/vnd.oasis.opendocument.database\":{\"source\":\"iana\",\"extensions\":[\"odb\"]},\"application/vnd.oasis.opendocument.formula\":{\"source\":\"iana\",\"extensions\":[\"odf\"]},\"application/vnd.oasis.opendocument.formula-template\":{\"source\":\"iana\",\"extensions\":[\"odft\"]},\"application/vnd.oasis.opendocument.graphics\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"odg\"]},\"application/vnd.oasis.opendocument.graphics-template\":{\"source\":\"iana\",\"extensions\":[\"otg\"]},\"application/vnd.oasis.opendocument.image\":{\"source\":\"iana\",\"extensions\":[\"odi\"]},\"application/vnd.oasis.opendocument.image-template\":{\"source\":\"iana\",\"extensions\":[\"oti\"]},\"application/vnd.oasis.opendocument.presentation\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"odp\"]},\"application/vnd.oasis.opendocument.presentation-template\":{\"source\":\"iana\",\"extensions\":[\"otp\"]},\"application/vnd.oasis.opendocument.spreadsheet\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ods\"]},\"application/vnd.oasis.opendocument.spreadsheet-template\":{\"source\":\"iana\",\"extensions\":[\"ots\"]},\"application/vnd.oasis.opendocument.text\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"odt\"]},\"application/vnd.oasis.opendocument.text-master\":{\"source\":\"iana\",\"extensions\":[\"odm\"]},\"application/vnd.oasis.opendocument.text-template\":{\"source\":\"iana\",\"extensions\":[\"ott\"]},\"application/vnd.oasis.opendocument.text-web\":{\"source\":\"iana\",\"extensions\":[\"oth\"]},\"application/vnd.obn\":{\"source\":\"iana\"},\"application/vnd.ocf+cbor\":{\"source\":\"iana\"},\"application/vnd.oftn.l10n+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.contentaccessdownload+xml\":{\"source\":\"iana\"},\"application/vnd.oipf.contentaccessstreaming+xml\":{\"source\":\"iana\"},\"application/vnd.oipf.cspg-hexbinary\":{\"source\":\"iana\"},\"application/vnd.oipf.dae.svg+xml\":{\"source\":\"iana\"},\"application/vnd.oipf.dae.xhtml+xml\":{\"source\":\"iana\"},\"application/vnd.oipf.mippvcontrolmessage+xml\":{\"source\":\"iana\"},\"application/vnd.oipf.pae.gem\":{\"source\":\"iana\"},\"application/vnd.oipf.spdiscovery+xml\":{\"source\":\"iana\"},\"application/vnd.oipf.spdlist+xml\":{\"source\":\"iana\"},\"application/vnd.oipf.ueprofile+xml\":{\"source\":\"iana\"},\"application/vnd.oipf.userprofile+xml\":{\"source\":\"iana\"},\"application/vnd.olpc-sugar\":{\"source\":\"iana\",\"extensions\":[\"xo\"]},\"application/vnd.oma-scws-config\":{\"source\":\"iana\"},\"application/vnd.oma-scws-http-request\":{\"source\":\"iana\"},\"application/vnd.oma-scws-http-response\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.associated-procedure-parameter+xml\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.drm-trigger+xml\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.imd+xml\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.ltkm\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.notification+xml\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.provisioningtrigger\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.sgboot\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.sgdd+xml\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.sgdu\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.simple-symbol-container\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.smartcard-trigger+xml\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.sprov+xml\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.stkm\":{\"source\":\"iana\"},\"application/vnd.oma.cab-address-book+xml\":{\"source\":\"iana\"},\"application/vnd.oma.cab-feature-handler+xml\":{\"source\":\"iana\"},\"application/vnd.oma.cab-pcc+xml\":{\"source\":\"iana\"},\"application/vnd.oma.cab-subs-invite+xml\":{\"source\":\"iana\"},\"application/vnd.oma.cab-user-prefs+xml\":{\"source\":\"iana\"},\"application/vnd.oma.dcd\":{\"source\":\"iana\"},\"application/vnd.oma.dcdc\":{\"source\":\"iana\"},\"application/vnd.oma.dd2+xml\":{\"source\":\"iana\",\"extensions\":[\"dd2\"]},\"application/vnd.oma.drm.risd+xml\":{\"source\":\"iana\"},\"application/vnd.oma.group-usage-list+xml\":{\"source\":\"iana\"},\"application/vnd.oma.lwm2m+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.lwm2m+tlv\":{\"source\":\"iana\"},\"application/vnd.oma.pal+xml\":{\"source\":\"iana\"},\"application/vnd.oma.poc.detailed-progress-report+xml\":{\"source\":\"iana\"},\"application/vnd.oma.poc.final-report+xml\":{\"source\":\"iana\"},\"application/vnd.oma.poc.groups+xml\":{\"source\":\"iana\"},\"application/vnd.oma.poc.invocation-descriptor+xml\":{\"source\":\"iana\"},\"application/vnd.oma.poc.optimized-progress-report+xml\":{\"source\":\"iana\"},\"application/vnd.oma.push\":{\"source\":\"iana\"},\"application/vnd.oma.scidm.messages+xml\":{\"source\":\"iana\"},\"application/vnd.oma.xcap-directory+xml\":{\"source\":\"iana\"},\"application/vnd.omads-email+xml\":{\"source\":\"iana\"},\"application/vnd.omads-file+xml\":{\"source\":\"iana\"},\"application/vnd.omads-folder+xml\":{\"source\":\"iana\"},\"application/vnd.omaloc-supl-init\":{\"source\":\"iana\"},\"application/vnd.onepager\":{\"source\":\"iana\"},\"application/vnd.onepagertamp\":{\"source\":\"iana\"},\"application/vnd.onepagertamx\":{\"source\":\"iana\"},\"application/vnd.onepagertat\":{\"source\":\"iana\"},\"application/vnd.onepagertatp\":{\"source\":\"iana\"},\"application/vnd.onepagertatx\":{\"source\":\"iana\"},\"application/vnd.openblox.game+xml\":{\"source\":\"iana\"},\"application/vnd.openblox.game-binary\":{\"source\":\"iana\"},\"application/vnd.openeye.oeb\":{\"source\":\"iana\"},\"application/vnd.openofficeorg.extension\":{\"source\":\"apache\",\"extensions\":[\"oxt\"]},\"application/vnd.openstreetmap.data+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.custom-properties+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.drawing+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.extended-properties+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"pptx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.slide\":{\"source\":\"iana\",\"extensions\":[\"sldx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":{\"source\":\"iana\",\"extensions\":[\"ppsx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.template\":{\"source\":\"iana\",\"extensions\":[\"potx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"xlsx\"]},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":{\"source\":\"iana\",\"extensions\":[\"xltx\"]},\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.theme+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.themeoverride+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.vmldrawing\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"docx\"]},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":{\"source\":\"iana\",\"extensions\":[\"dotx\"]},\"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-package.core-properties+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-package.relationships+xml\":{\"source\":\"iana\"},\"application/vnd.oracle.resource+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.orange.indata\":{\"source\":\"iana\"},\"application/vnd.osa.netdeploy\":{\"source\":\"iana\"},\"application/vnd.osgeo.mapguide.package\":{\"source\":\"iana\",\"extensions\":[\"mgp\"]},\"application/vnd.osgi.bundle\":{\"source\":\"iana\"},\"application/vnd.osgi.dp\":{\"source\":\"iana\",\"extensions\":[\"dp\"]},\"application/vnd.osgi.subsystem\":{\"source\":\"iana\",\"extensions\":[\"esa\"]},\"application/vnd.otps.ct-kip+xml\":{\"source\":\"iana\"},\"application/vnd.oxli.countgraph\":{\"source\":\"iana\"},\"application/vnd.pagerduty+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.palm\":{\"source\":\"iana\",\"extensions\":[\"pdb\",\"pqa\",\"oprc\"]},\"application/vnd.panoply\":{\"source\":\"iana\"},\"application/vnd.paos+xml\":{\"source\":\"iana\"},\"application/vnd.paos.xml\":{\"source\":\"apache\"},\"application/vnd.patentdive\":{\"source\":\"iana\"},\"application/vnd.pawaafile\":{\"source\":\"iana\",\"extensions\":[\"paw\"]},\"application/vnd.pcos\":{\"source\":\"iana\"},\"application/vnd.pg.format\":{\"source\":\"iana\",\"extensions\":[\"str\"]},\"application/vnd.pg.osasli\":{\"source\":\"iana\",\"extensions\":[\"ei6\"]},\"application/vnd.piaccess.application-licence\":{\"source\":\"iana\"},\"application/vnd.picsel\":{\"source\":\"iana\",\"extensions\":[\"efif\"]},\"application/vnd.pmi.widget\":{\"source\":\"iana\",\"extensions\":[\"wg\"]},\"application/vnd.poc.group-advertisement+xml\":{\"source\":\"iana\"},\"application/vnd.pocketlearn\":{\"source\":\"iana\",\"extensions\":[\"plf\"]},\"application/vnd.powerbuilder6\":{\"source\":\"iana\",\"extensions\":[\"pbd\"]},\"application/vnd.powerbuilder6-s\":{\"source\":\"iana\"},\"application/vnd.powerbuilder7\":{\"source\":\"iana\"},\"application/vnd.powerbuilder7-s\":{\"source\":\"iana\"},\"application/vnd.powerbuilder75\":{\"source\":\"iana\"},\"application/vnd.powerbuilder75-s\":{\"source\":\"iana\"},\"application/vnd.preminet\":{\"source\":\"iana\"},\"application/vnd.previewsystems.box\":{\"source\":\"iana\",\"extensions\":[\"box\"]},\"application/vnd.proteus.magazine\":{\"source\":\"iana\",\"extensions\":[\"mgz\"]},\"application/vnd.publishare-delta-tree\":{\"source\":\"iana\",\"extensions\":[\"qps\"]},\"application/vnd.pvi.ptid1\":{\"source\":\"iana\",\"extensions\":[\"ptid\"]},\"application/vnd.pwg-multiplexed\":{\"source\":\"iana\"},\"application/vnd.pwg-xhtml-print+xml\":{\"source\":\"iana\"},\"application/vnd.qualcomm.brew-app-res\":{\"source\":\"iana\"},\"application/vnd.quarantainenet\":{\"source\":\"iana\"},\"application/vnd.quark.quarkxpress\":{\"source\":\"iana\",\"extensions\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]},\"application/vnd.quobject-quoxdocument\":{\"source\":\"iana\"},\"application/vnd.radisys.moml+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-audit+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-audit-conf+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-audit-conn+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-audit-dialog+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-audit-stream+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-conf+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-dialog+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-dialog-base+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-dialog-fax-detect+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-dialog-group+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-dialog-speech+xml\":{\"source\":\"iana\"},\"application/vnd.radisys.msml-dialog-transform+xml\":{\"source\":\"iana\"},\"application/vnd.rainstor.data\":{\"source\":\"iana\"},\"application/vnd.rapid\":{\"source\":\"iana\"},\"application/vnd.rar\":{\"source\":\"iana\"},\"application/vnd.realvnc.bed\":{\"source\":\"iana\",\"extensions\":[\"bed\"]},\"application/vnd.recordare.musicxml\":{\"source\":\"iana\",\"extensions\":[\"mxl\"]},\"application/vnd.recordare.musicxml+xml\":{\"source\":\"iana\",\"extensions\":[\"musicxml\"]},\"application/vnd.renlearn.rlprint\":{\"source\":\"iana\"},\"application/vnd.restful+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.rig.cryptonote\":{\"source\":\"iana\",\"extensions\":[\"cryptonote\"]},\"application/vnd.rim.cod\":{\"source\":\"apache\",\"extensions\":[\"cod\"]},\"application/vnd.rn-realmedia\":{\"source\":\"apache\",\"extensions\":[\"rm\"]},\"application/vnd.rn-realmedia-vbr\":{\"source\":\"apache\",\"extensions\":[\"rmvb\"]},\"application/vnd.route66.link66+xml\":{\"source\":\"iana\",\"extensions\":[\"link66\"]},\"application/vnd.rs-274x\":{\"source\":\"iana\"},\"application/vnd.ruckus.download\":{\"source\":\"iana\"},\"application/vnd.s3sms\":{\"source\":\"iana\"},\"application/vnd.sailingtracker.track\":{\"source\":\"iana\",\"extensions\":[\"st\"]},\"application/vnd.sbm.cid\":{\"source\":\"iana\"},\"application/vnd.sbm.mid2\":{\"source\":\"iana\"},\"application/vnd.scribus\":{\"source\":\"iana\"},\"application/vnd.sealed.3df\":{\"source\":\"iana\"},\"application/vnd.sealed.csf\":{\"source\":\"iana\"},\"application/vnd.sealed.doc\":{\"source\":\"iana\"},\"application/vnd.sealed.eml\":{\"source\":\"iana\"},\"application/vnd.sealed.mht\":{\"source\":\"iana\"},\"application/vnd.sealed.net\":{\"source\":\"iana\"},\"application/vnd.sealed.ppt\":{\"source\":\"iana\"},\"application/vnd.sealed.tiff\":{\"source\":\"iana\"},\"application/vnd.sealed.xls\":{\"source\":\"iana\"},\"application/vnd.sealedmedia.softseal.html\":{\"source\":\"iana\"},\"application/vnd.sealedmedia.softseal.pdf\":{\"source\":\"iana\"},\"application/vnd.seemail\":{\"source\":\"iana\",\"extensions\":[\"see\"]},\"application/vnd.sema\":{\"source\":\"iana\",\"extensions\":[\"sema\"]},\"application/vnd.semd\":{\"source\":\"iana\",\"extensions\":[\"semd\"]},\"application/vnd.semf\":{\"source\":\"iana\",\"extensions\":[\"semf\"]},\"application/vnd.shana.informed.formdata\":{\"source\":\"iana\",\"extensions\":[\"ifm\"]},\"application/vnd.shana.informed.formtemplate\":{\"source\":\"iana\",\"extensions\":[\"itp\"]},\"application/vnd.shana.informed.interchange\":{\"source\":\"iana\",\"extensions\":[\"iif\"]},\"application/vnd.shana.informed.package\":{\"source\":\"iana\",\"extensions\":[\"ipk\"]},\"application/vnd.sigrok.session\":{\"source\":\"iana\"},\"application/vnd.simtech-mindmapper\":{\"source\":\"iana\",\"extensions\":[\"twd\",\"twds\"]},\"application/vnd.siren+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.smaf\":{\"source\":\"iana\",\"extensions\":[\"mmf\"]},\"application/vnd.smart.notebook\":{\"source\":\"iana\"},\"application/vnd.smart.teacher\":{\"source\":\"iana\",\"extensions\":[\"teacher\"]},\"application/vnd.software602.filler.form+xml\":{\"source\":\"iana\"},\"application/vnd.software602.filler.form-xml-zip\":{\"source\":\"iana\"},\"application/vnd.solent.sdkm+xml\":{\"source\":\"iana\",\"extensions\":[\"sdkm\",\"sdkd\"]},\"application/vnd.spotfire.dxp\":{\"source\":\"iana\",\"extensions\":[\"dxp\"]},\"application/vnd.spotfire.sfs\":{\"source\":\"iana\",\"extensions\":[\"sfs\"]},\"application/vnd.sqlite3\":{\"source\":\"iana\"},\"application/vnd.sss-cod\":{\"source\":\"iana\"},\"application/vnd.sss-dtf\":{\"source\":\"iana\"},\"application/vnd.sss-ntf\":{\"source\":\"iana\"},\"application/vnd.stardivision.calc\":{\"source\":\"apache\",\"extensions\":[\"sdc\"]},\"application/vnd.stardivision.draw\":{\"source\":\"apache\",\"extensions\":[\"sda\"]},\"application/vnd.stardivision.impress\":{\"source\":\"apache\",\"extensions\":[\"sdd\"]},\"application/vnd.stardivision.math\":{\"source\":\"apache\",\"extensions\":[\"smf\"]},\"application/vnd.stardivision.writer\":{\"source\":\"apache\",\"extensions\":[\"sdw\",\"vor\"]},\"application/vnd.stardivision.writer-global\":{\"source\":\"apache\",\"extensions\":[\"sgl\"]},\"application/vnd.stepmania.package\":{\"source\":\"iana\",\"extensions\":[\"smzip\"]},\"application/vnd.stepmania.stepchart\":{\"source\":\"iana\",\"extensions\":[\"sm\"]},\"application/vnd.street-stream\":{\"source\":\"iana\"},\"application/vnd.sun.wadl+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"wadl\"]},\"application/vnd.sun.xml.calc\":{\"source\":\"apache\",\"extensions\":[\"sxc\"]},\"application/vnd.sun.xml.calc.template\":{\"source\":\"apache\",\"extensions\":[\"stc\"]},\"application/vnd.sun.xml.draw\":{\"source\":\"apache\",\"extensions\":[\"sxd\"]},\"application/vnd.sun.xml.draw.template\":{\"source\":\"apache\",\"extensions\":[\"std\"]},\"application/vnd.sun.xml.impress\":{\"source\":\"apache\",\"extensions\":[\"sxi\"]},\"application/vnd.sun.xml.impress.template\":{\"source\":\"apache\",\"extensions\":[\"sti\"]},\"application/vnd.sun.xml.math\":{\"source\":\"apache\",\"extensions\":[\"sxm\"]},\"application/vnd.sun.xml.writer\":{\"source\":\"apache\",\"extensions\":[\"sxw\"]},\"application/vnd.sun.xml.writer.global\":{\"source\":\"apache\",\"extensions\":[\"sxg\"]},\"application/vnd.sun.xml.writer.template\":{\"source\":\"apache\",\"extensions\":[\"stw\"]},\"application/vnd.sus-calendar\":{\"source\":\"iana\",\"extensions\":[\"sus\",\"susp\"]},\"application/vnd.svd\":{\"source\":\"iana\",\"extensions\":[\"svd\"]},\"application/vnd.swiftview-ics\":{\"source\":\"iana\"},\"application/vnd.symbian.install\":{\"source\":\"apache\",\"extensions\":[\"sis\",\"sisx\"]},\"application/vnd.syncml+xml\":{\"source\":\"iana\",\"extensions\":[\"xsm\"]},\"application/vnd.syncml.dm+wbxml\":{\"source\":\"iana\",\"extensions\":[\"bdm\"]},\"application/vnd.syncml.dm+xml\":{\"source\":\"iana\",\"extensions\":[\"xdm\"]},\"application/vnd.syncml.dm.notification\":{\"source\":\"iana\"},\"application/vnd.syncml.dmddf+wbxml\":{\"source\":\"iana\"},\"application/vnd.syncml.dmddf+xml\":{\"source\":\"iana\"},\"application/vnd.syncml.dmtnds+wbxml\":{\"source\":\"iana\"},\"application/vnd.syncml.dmtnds+xml\":{\"source\":\"iana\"},\"application/vnd.syncml.ds.notification\":{\"source\":\"iana\"},\"application/vnd.tableschema+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.tao.intent-module-archive\":{\"source\":\"iana\",\"extensions\":[\"tao\"]},\"application/vnd.tcpdump.pcap\":{\"source\":\"iana\",\"extensions\":[\"pcap\",\"cap\",\"dmp\"]},\"application/vnd.tmd.mediaflex.api+xml\":{\"source\":\"iana\"},\"application/vnd.tml\":{\"source\":\"iana\"},\"application/vnd.tmobile-livetv\":{\"source\":\"iana\",\"extensions\":[\"tmo\"]},\"application/vnd.tri.onesource\":{\"source\":\"iana\"},\"application/vnd.trid.tpt\":{\"source\":\"iana\",\"extensions\":[\"tpt\"]},\"application/vnd.triscape.mxs\":{\"source\":\"iana\",\"extensions\":[\"mxs\"]},\"application/vnd.trueapp\":{\"source\":\"iana\",\"extensions\":[\"tra\"]},\"application/vnd.truedoc\":{\"source\":\"iana\"},\"application/vnd.ubisoft.webplayer\":{\"source\":\"iana\"},\"application/vnd.ufdl\":{\"source\":\"iana\",\"extensions\":[\"ufd\",\"ufdl\"]},\"application/vnd.uiq.theme\":{\"source\":\"iana\",\"extensions\":[\"utz\"]},\"application/vnd.umajin\":{\"source\":\"iana\",\"extensions\":[\"umj\"]},\"application/vnd.unity\":{\"source\":\"iana\",\"extensions\":[\"unityweb\"]},\"application/vnd.uoml+xml\":{\"source\":\"iana\",\"extensions\":[\"uoml\"]},\"application/vnd.uplanet.alert\":{\"source\":\"iana\"},\"application/vnd.uplanet.alert-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.bearer-choice\":{\"source\":\"iana\"},\"application/vnd.uplanet.bearer-choice-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.cacheop\":{\"source\":\"iana\"},\"application/vnd.uplanet.cacheop-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.channel\":{\"source\":\"iana\"},\"application/vnd.uplanet.channel-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.list\":{\"source\":\"iana\"},\"application/vnd.uplanet.list-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.listcmd\":{\"source\":\"iana\"},\"application/vnd.uplanet.listcmd-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.signal\":{\"source\":\"iana\"},\"application/vnd.uri-map\":{\"source\":\"iana\"},\"application/vnd.valve.source.material\":{\"source\":\"iana\"},\"application/vnd.vcx\":{\"source\":\"iana\",\"extensions\":[\"vcx\"]},\"application/vnd.vd-study\":{\"source\":\"iana\"},\"application/vnd.vectorworks\":{\"source\":\"iana\"},\"application/vnd.vel+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.verimatrix.vcas\":{\"source\":\"iana\"},\"application/vnd.vidsoft.vidconference\":{\"source\":\"iana\"},\"application/vnd.visio\":{\"source\":\"iana\",\"extensions\":[\"vsd\",\"vst\",\"vss\",\"vsw\"]},\"application/vnd.visionary\":{\"source\":\"iana\",\"extensions\":[\"vis\"]},\"application/vnd.vividence.scriptfile\":{\"source\":\"iana\"},\"application/vnd.vsf\":{\"source\":\"iana\",\"extensions\":[\"vsf\"]},\"application/vnd.wap.sic\":{\"source\":\"iana\"},\"application/vnd.wap.slc\":{\"source\":\"iana\"},\"application/vnd.wap.wbxml\":{\"source\":\"iana\",\"extensions\":[\"wbxml\"]},\"application/vnd.wap.wmlc\":{\"source\":\"iana\",\"extensions\":[\"wmlc\"]},\"application/vnd.wap.wmlscriptc\":{\"source\":\"iana\",\"extensions\":[\"wmlsc\"]},\"application/vnd.webturbo\":{\"source\":\"iana\",\"extensions\":[\"wtb\"]},\"application/vnd.wfa.p2p\":{\"source\":\"iana\"},\"application/vnd.wfa.wsc\":{\"source\":\"iana\"},\"application/vnd.windows.devicepairing\":{\"source\":\"iana\"},\"application/vnd.wmc\":{\"source\":\"iana\"},\"application/vnd.wmf.bootstrap\":{\"source\":\"iana\"},\"application/vnd.wolfram.mathematica\":{\"source\":\"iana\"},\"application/vnd.wolfram.mathematica.package\":{\"source\":\"iana\"},\"application/vnd.wolfram.player\":{\"source\":\"iana\",\"extensions\":[\"nbp\"]},\"application/vnd.wordperfect\":{\"source\":\"iana\",\"extensions\":[\"wpd\"]},\"application/vnd.wqd\":{\"source\":\"iana\",\"extensions\":[\"wqd\"]},\"application/vnd.wrq-hp3000-labelled\":{\"source\":\"iana\"},\"application/vnd.wt.stf\":{\"source\":\"iana\",\"extensions\":[\"stf\"]},\"application/vnd.wv.csp+wbxml\":{\"source\":\"iana\"},\"application/vnd.wv.csp+xml\":{\"source\":\"iana\"},\"application/vnd.wv.ssp+xml\":{\"source\":\"iana\"},\"application/vnd.xacml+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.xara\":{\"source\":\"iana\",\"extensions\":[\"xar\"]},\"application/vnd.xfdl\":{\"source\":\"iana\",\"extensions\":[\"xfdl\"]},\"application/vnd.xfdl.webform\":{\"source\":\"iana\"},\"application/vnd.xmi+xml\":{\"source\":\"iana\"},\"application/vnd.xmpie.cpkg\":{\"source\":\"iana\"},\"application/vnd.xmpie.dpkg\":{\"source\":\"iana\"},\"application/vnd.xmpie.plan\":{\"source\":\"iana\"},\"application/vnd.xmpie.ppkg\":{\"source\":\"iana\"},\"application/vnd.xmpie.xlim\":{\"source\":\"iana\"},\"application/vnd.yamaha.hv-dic\":{\"source\":\"iana\",\"extensions\":[\"hvd\"]},\"application/vnd.yamaha.hv-script\":{\"source\":\"iana\",\"extensions\":[\"hvs\"]},\"application/vnd.yamaha.hv-voice\":{\"source\":\"iana\",\"extensions\":[\"hvp\"]},\"application/vnd.yamaha.openscoreformat\":{\"source\":\"iana\",\"extensions\":[\"osf\"]},\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":{\"source\":\"iana\",\"extensions\":[\"osfpvg\"]},\"application/vnd.yamaha.remote-setup\":{\"source\":\"iana\"},\"application/vnd.yamaha.smaf-audio\":{\"source\":\"iana\",\"extensions\":[\"saf\"]},\"application/vnd.yamaha.smaf-phrase\":{\"source\":\"iana\",\"extensions\":[\"spf\"]},\"application/vnd.yamaha.through-ngn\":{\"source\":\"iana\"},\"application/vnd.yamaha.tunnel-udpencap\":{\"source\":\"iana\"},\"application/vnd.yaoweme\":{\"source\":\"iana\"},\"application/vnd.yellowriver-custom-menu\":{\"source\":\"iana\",\"extensions\":[\"cmp\"]},\"application/vnd.youtube.yt\":{\"source\":\"iana\"},\"application/vnd.zul\":{\"source\":\"iana\",\"extensions\":[\"zir\",\"zirz\"]},\"application/vnd.zzazz.deck+xml\":{\"source\":\"iana\",\"extensions\":[\"zaz\"]},\"application/voicexml+xml\":{\"source\":\"iana\",\"extensions\":[\"vxml\"]},\"application/voucher-cms+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vq-rtcpxr\":{\"source\":\"iana\"},\"application/wasm\":{\"compressible\":true,\"extensions\":[\"wasm\"]},\"application/watcherinfo+xml\":{\"source\":\"iana\"},\"application/webpush-options+json\":{\"source\":\"iana\",\"compressible\":true},\"application/whoispp-query\":{\"source\":\"iana\"},\"application/whoispp-response\":{\"source\":\"iana\"},\"application/widget\":{\"source\":\"iana\",\"extensions\":[\"wgt\"]},\"application/winhlp\":{\"source\":\"apache\",\"extensions\":[\"hlp\"]},\"application/wita\":{\"source\":\"iana\"},\"application/wordperfect5.1\":{\"source\":\"iana\"},\"application/wsdl+xml\":{\"source\":\"iana\",\"extensions\":[\"wsdl\"]},\"application/wspolicy+xml\":{\"source\":\"iana\",\"extensions\":[\"wspolicy\"]},\"application/x-7z-compressed\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"7z\"]},\"application/x-abiword\":{\"source\":\"apache\",\"extensions\":[\"abw\"]},\"application/x-ace-compressed\":{\"source\":\"apache\",\"extensions\":[\"ace\"]},\"application/x-amf\":{\"source\":\"apache\"},\"application/x-apple-diskimage\":{\"source\":\"apache\",\"extensions\":[\"dmg\"]},\"application/x-arj\":{\"compressible\":false,\"extensions\":[\"arj\"]},\"application/x-authorware-bin\":{\"source\":\"apache\",\"extensions\":[\"aab\",\"x32\",\"u32\",\"vox\"]},\"application/x-authorware-map\":{\"source\":\"apache\",\"extensions\":[\"aam\"]},\"application/x-authorware-seg\":{\"source\":\"apache\",\"extensions\":[\"aas\"]},\"application/x-bcpio\":{\"source\":\"apache\",\"extensions\":[\"bcpio\"]},\"application/x-bdoc\":{\"compressible\":false,\"extensions\":[\"bdoc\"]},\"application/x-bittorrent\":{\"source\":\"apache\",\"extensions\":[\"torrent\"]},\"application/x-blorb\":{\"source\":\"apache\",\"extensions\":[\"blb\",\"blorb\"]},\"application/x-bzip\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"bz\"]},\"application/x-bzip2\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"bz2\",\"boz\"]},\"application/x-cbr\":{\"source\":\"apache\",\"extensions\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]},\"application/x-cdlink\":{\"source\":\"apache\",\"extensions\":[\"vcd\"]},\"application/x-cfs-compressed\":{\"source\":\"apache\",\"extensions\":[\"cfs\"]},\"application/x-chat\":{\"source\":\"apache\",\"extensions\":[\"chat\"]},\"application/x-chess-pgn\":{\"source\":\"apache\",\"extensions\":[\"pgn\"]},\"application/x-chrome-extension\":{\"extensions\":[\"crx\"]},\"application/x-cocoa\":{\"source\":\"nginx\",\"extensions\":[\"cco\"]},\"application/x-compress\":{\"source\":\"apache\"},\"application/x-conference\":{\"source\":\"apache\",\"extensions\":[\"nsc\"]},\"application/x-cpio\":{\"source\":\"apache\",\"extensions\":[\"cpio\"]},\"application/x-csh\":{\"source\":\"apache\",\"extensions\":[\"csh\"]},\"application/x-deb\":{\"compressible\":false},\"application/x-debian-package\":{\"source\":\"apache\",\"extensions\":[\"deb\",\"udeb\"]},\"application/x-dgc-compressed\":{\"source\":\"apache\",\"extensions\":[\"dgc\"]},\"application/x-director\":{\"source\":\"apache\",\"extensions\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]},\"application/x-doom\":{\"source\":\"apache\",\"extensions\":[\"wad\"]},\"application/x-dtbncx+xml\":{\"source\":\"apache\",\"extensions\":[\"ncx\"]},\"application/x-dtbook+xml\":{\"source\":\"apache\",\"extensions\":[\"dtb\"]},\"application/x-dtbresource+xml\":{\"source\":\"apache\",\"extensions\":[\"res\"]},\"application/x-dvi\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"dvi\"]},\"application/x-envoy\":{\"source\":\"apache\",\"extensions\":[\"evy\"]},\"application/x-eva\":{\"source\":\"apache\",\"extensions\":[\"eva\"]},\"application/x-font-bdf\":{\"source\":\"apache\",\"extensions\":[\"bdf\"]},\"application/x-font-dos\":{\"source\":\"apache\"},\"application/x-font-framemaker\":{\"source\":\"apache\"},\"application/x-font-ghostscript\":{\"source\":\"apache\",\"extensions\":[\"gsf\"]},\"application/x-font-libgrx\":{\"source\":\"apache\"},\"application/x-font-linux-psf\":{\"source\":\"apache\",\"extensions\":[\"psf\"]},\"application/x-font-pcf\":{\"source\":\"apache\",\"extensions\":[\"pcf\"]},\"application/x-font-snf\":{\"source\":\"apache\",\"extensions\":[\"snf\"]},\"application/x-font-speedo\":{\"source\":\"apache\"},\"application/x-font-sunos-news\":{\"source\":\"apache\"},\"application/x-font-type1\":{\"source\":\"apache\",\"extensions\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"]},\"application/x-font-vfont\":{\"source\":\"apache\"},\"application/x-freearc\":{\"source\":\"apache\",\"extensions\":[\"arc\"]},\"application/x-futuresplash\":{\"source\":\"apache\",\"extensions\":[\"spl\"]},\"application/x-gca-compressed\":{\"source\":\"apache\",\"extensions\":[\"gca\"]},\"application/x-glulx\":{\"source\":\"apache\",\"extensions\":[\"ulx\"]},\"application/x-gnumeric\":{\"source\":\"apache\",\"extensions\":[\"gnumeric\"]},\"application/x-gramps-xml\":{\"source\":\"apache\",\"extensions\":[\"gramps\"]},\"application/x-gtar\":{\"source\":\"apache\",\"extensions\":[\"gtar\"]},\"application/x-gzip\":{\"source\":\"apache\"},\"application/x-hdf\":{\"source\":\"apache\",\"extensions\":[\"hdf\"]},\"application/x-httpd-php\":{\"compressible\":true,\"extensions\":[\"php\"]},\"application/x-install-instructions\":{\"source\":\"apache\",\"extensions\":[\"install\"]},\"application/x-iso9660-image\":{\"source\":\"apache\",\"extensions\":[\"iso\"]},\"application/x-java-archive-diff\":{\"source\":\"nginx\",\"extensions\":[\"jardiff\"]},\"application/x-java-jnlp-file\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"jnlp\"]},\"application/x-javascript\":{\"compressible\":true},\"application/x-latex\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"latex\"]},\"application/x-lua-bytecode\":{\"extensions\":[\"luac\"]},\"application/x-lzh-compressed\":{\"source\":\"apache\",\"extensions\":[\"lzh\",\"lha\"]},\"application/x-makeself\":{\"source\":\"nginx\",\"extensions\":[\"run\"]},\"application/x-mie\":{\"source\":\"apache\",\"extensions\":[\"mie\"]},\"application/x-mobipocket-ebook\":{\"source\":\"apache\",\"extensions\":[\"prc\",\"mobi\"]},\"application/x-mpegurl\":{\"compressible\":false},\"application/x-ms-application\":{\"source\":\"apache\",\"extensions\":[\"application\"]},\"application/x-ms-shortcut\":{\"source\":\"apache\",\"extensions\":[\"lnk\"]},\"application/x-ms-wmd\":{\"source\":\"apache\",\"extensions\":[\"wmd\"]},\"application/x-ms-wmz\":{\"source\":\"apache\",\"extensions\":[\"wmz\"]},\"application/x-ms-xbap\":{\"source\":\"apache\",\"extensions\":[\"xbap\"]},\"application/x-msaccess\":{\"source\":\"apache\",\"extensions\":[\"mdb\"]},\"application/x-msbinder\":{\"source\":\"apache\",\"extensions\":[\"obd\"]},\"application/x-mscardfile\":{\"source\":\"apache\",\"extensions\":[\"crd\"]},\"application/x-msclip\":{\"source\":\"apache\",\"extensions\":[\"clp\"]},\"application/x-msdos-program\":{\"extensions\":[\"exe\"]},\"application/x-msdownload\":{\"source\":\"apache\",\"extensions\":[\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]},\"application/x-msmediaview\":{\"source\":\"apache\",\"extensions\":[\"mvb\",\"m13\",\"m14\"]},\"application/x-msmetafile\":{\"source\":\"apache\",\"extensions\":[\"wmf\",\"wmz\",\"emf\",\"emz\"]},\"application/x-msmoney\":{\"source\":\"apache\",\"extensions\":[\"mny\"]},\"application/x-mspublisher\":{\"source\":\"apache\",\"extensions\":[\"pub\"]},\"application/x-msschedule\":{\"source\":\"apache\",\"extensions\":[\"scd\"]},\"application/x-msterminal\":{\"source\":\"apache\",\"extensions\":[\"trm\"]},\"application/x-mswrite\":{\"source\":\"apache\",\"extensions\":[\"wri\"]},\"application/x-netcdf\":{\"source\":\"apache\",\"extensions\":[\"nc\",\"cdf\"]},\"application/x-ns-proxy-autoconfig\":{\"compressible\":true,\"extensions\":[\"pac\"]},\"application/x-nzb\":{\"source\":\"apache\",\"extensions\":[\"nzb\"]},\"application/x-perl\":{\"source\":\"nginx\",\"extensions\":[\"pl\",\"pm\"]},\"application/x-pilot\":{\"source\":\"nginx\",\"extensions\":[\"prc\",\"pdb\"]},\"application/x-pkcs12\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"p12\",\"pfx\"]},\"application/x-pkcs7-certificates\":{\"source\":\"apache\",\"extensions\":[\"p7b\",\"spc\"]},\"application/x-pkcs7-certreqresp\":{\"source\":\"apache\",\"extensions\":[\"p7r\"]},\"application/x-rar-compressed\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"rar\"]},\"application/x-redhat-package-manager\":{\"source\":\"nginx\",\"extensions\":[\"rpm\"]},\"application/x-research-info-systems\":{\"source\":\"apache\",\"extensions\":[\"ris\"]},\"application/x-sea\":{\"source\":\"nginx\",\"extensions\":[\"sea\"]},\"application/x-sh\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"sh\"]},\"application/x-shar\":{\"source\":\"apache\",\"extensions\":[\"shar\"]},\"application/x-shockwave-flash\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"swf\"]},\"application/x-silverlight-app\":{\"source\":\"apache\",\"extensions\":[\"xap\"]},\"application/x-sql\":{\"source\":\"apache\",\"extensions\":[\"sql\"]},\"application/x-stuffit\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"sit\"]},\"application/x-stuffitx\":{\"source\":\"apache\",\"extensions\":[\"sitx\"]},\"application/x-subrip\":{\"source\":\"apache\",\"extensions\":[\"srt\"]},\"application/x-sv4cpio\":{\"source\":\"apache\",\"extensions\":[\"sv4cpio\"]},\"application/x-sv4crc\":{\"source\":\"apache\",\"extensions\":[\"sv4crc\"]},\"application/x-t3vm-image\":{\"source\":\"apache\",\"extensions\":[\"t3\"]},\"application/x-tads\":{\"source\":\"apache\",\"extensions\":[\"gam\"]},\"application/x-tar\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"tar\"]},\"application/x-tcl\":{\"source\":\"apache\",\"extensions\":[\"tcl\",\"tk\"]},\"application/x-tex\":{\"source\":\"apache\",\"extensions\":[\"tex\"]},\"application/x-tex-tfm\":{\"source\":\"apache\",\"extensions\":[\"tfm\"]},\"application/x-texinfo\":{\"source\":\"apache\",\"extensions\":[\"texinfo\",\"texi\"]},\"application/x-tgif\":{\"source\":\"apache\",\"extensions\":[\"obj\"]},\"application/x-ustar\":{\"source\":\"apache\",\"extensions\":[\"ustar\"]},\"application/x-virtualbox-hdd\":{\"compressible\":true,\"extensions\":[\"hdd\"]},\"application/x-virtualbox-ova\":{\"compressible\":true,\"extensions\":[\"ova\"]},\"application/x-virtualbox-ovf\":{\"compressible\":true,\"extensions\":[\"ovf\"]},\"application/x-virtualbox-vbox\":{\"compressible\":true,\"extensions\":[\"vbox\"]},\"application/x-virtualbox-vbox-extpack\":{\"compressible\":false,\"extensions\":[\"vbox-extpack\"]},\"application/x-virtualbox-vdi\":{\"compressible\":true,\"extensions\":[\"vdi\"]},\"application/x-virtualbox-vhd\":{\"compressible\":true,\"extensions\":[\"vhd\"]},\"application/x-virtualbox-vmdk\":{\"compressible\":true,\"extensions\":[\"vmdk\"]},\"application/x-wais-source\":{\"source\":\"apache\",\"extensions\":[\"src\"]},\"application/x-web-app-manifest+json\":{\"compressible\":true,\"extensions\":[\"webapp\"]},\"application/x-www-form-urlencoded\":{\"source\":\"iana\",\"compressible\":true},\"application/x-x509-ca-cert\":{\"source\":\"apache\",\"extensions\":[\"der\",\"crt\",\"pem\"]},\"application/x-xfig\":{\"source\":\"apache\",\"extensions\":[\"fig\"]},\"application/x-xliff+xml\":{\"source\":\"apache\",\"extensions\":[\"xlf\"]},\"application/x-xpinstall\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"xpi\"]},\"application/x-xz\":{\"source\":\"apache\",\"extensions\":[\"xz\"]},\"application/x-zmachine\":{\"source\":\"apache\",\"extensions\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]},\"application/x400-bp\":{\"source\":\"iana\"},\"application/xacml+xml\":{\"source\":\"iana\"},\"application/xaml+xml\":{\"source\":\"apache\",\"extensions\":[\"xaml\"]},\"application/xcap-att+xml\":{\"source\":\"iana\"},\"application/xcap-caps+xml\":{\"source\":\"iana\"},\"application/xcap-diff+xml\":{\"source\":\"iana\",\"extensions\":[\"xdf\"]},\"application/xcap-el+xml\":{\"source\":\"iana\"},\"application/xcap-error+xml\":{\"source\":\"iana\"},\"application/xcap-ns+xml\":{\"source\":\"iana\"},\"application/xcon-conference-info+xml\":{\"source\":\"iana\"},\"application/xcon-conference-info-diff+xml\":{\"source\":\"iana\"},\"application/xenc+xml\":{\"source\":\"iana\",\"extensions\":[\"xenc\"]},\"application/xhtml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xhtml\",\"xht\"]},\"application/xhtml-voice+xml\":{\"source\":\"apache\"},\"application/xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xml\",\"xsl\",\"xsd\",\"rng\"]},\"application/xml-dtd\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dtd\"]},\"application/xml-external-parsed-entity\":{\"source\":\"iana\"},\"application/xml-patch+xml\":{\"source\":\"iana\"},\"application/xmpp+xml\":{\"source\":\"iana\"},\"application/xop+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xop\"]},\"application/xproc+xml\":{\"source\":\"apache\",\"extensions\":[\"xpl\"]},\"application/xslt+xml\":{\"source\":\"iana\",\"extensions\":[\"xslt\"]},\"application/xspf+xml\":{\"source\":\"apache\",\"extensions\":[\"xspf\"]},\"application/xv+xml\":{\"source\":\"iana\",\"extensions\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]},\"application/yang\":{\"source\":\"iana\",\"extensions\":[\"yang\"]},\"application/yang-data+json\":{\"source\":\"iana\",\"compressible\":true},\"application/yang-data+xml\":{\"source\":\"iana\"},\"application/yang-patch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/yang-patch+xml\":{\"source\":\"iana\"},\"application/yin+xml\":{\"source\":\"iana\",\"extensions\":[\"yin\"]},\"application/zip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"zip\"]},\"application/zlib\":{\"source\":\"iana\"},\"audio/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"audio/32kadpcm\":{\"source\":\"iana\"},\"audio/3gpp\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"3gpp\"]},\"audio/3gpp2\":{\"source\":\"iana\"},\"audio/ac3\":{\"source\":\"iana\"},\"audio/adpcm\":{\"source\":\"apache\",\"extensions\":[\"adp\"]},\"audio/amr\":{\"source\":\"iana\"},\"audio/amr-wb\":{\"source\":\"iana\"},\"audio/amr-wb+\":{\"source\":\"iana\"},\"audio/aptx\":{\"source\":\"iana\"},\"audio/asc\":{\"source\":\"iana\"},\"audio/atrac-advanced-lossless\":{\"source\":\"iana\"},\"audio/atrac-x\":{\"source\":\"iana\"},\"audio/atrac3\":{\"source\":\"iana\"},\"audio/basic\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"au\",\"snd\"]},\"audio/bv16\":{\"source\":\"iana\"},\"audio/bv32\":{\"source\":\"iana\"},\"audio/clearmode\":{\"source\":\"iana\"},\"audio/cn\":{\"source\":\"iana\"},\"audio/dat12\":{\"source\":\"iana\"},\"audio/dls\":{\"source\":\"iana\"},\"audio/dsr-es201108\":{\"source\":\"iana\"},\"audio/dsr-es202050\":{\"source\":\"iana\"},\"audio/dsr-es202211\":{\"source\":\"iana\"},\"audio/dsr-es202212\":{\"source\":\"iana\"},\"audio/dv\":{\"source\":\"iana\"},\"audio/dvi4\":{\"source\":\"iana\"},\"audio/eac3\":{\"source\":\"iana\"},\"audio/encaprtp\":{\"source\":\"iana\"},\"audio/evrc\":{\"source\":\"iana\"},\"audio/evrc-qcp\":{\"source\":\"iana\"},\"audio/evrc0\":{\"source\":\"iana\"},\"audio/evrc1\":{\"source\":\"iana\"},\"audio/evrcb\":{\"source\":\"iana\"},\"audio/evrcb0\":{\"source\":\"iana\"},\"audio/evrcb1\":{\"source\":\"iana\"},\"audio/evrcnw\":{\"source\":\"iana\"},\"audio/evrcnw0\":{\"source\":\"iana\"},\"audio/evrcnw1\":{\"source\":\"iana\"},\"audio/evrcwb\":{\"source\":\"iana\"},\"audio/evrcwb0\":{\"source\":\"iana\"},\"audio/evrcwb1\":{\"source\":\"iana\"},\"audio/evs\":{\"source\":\"iana\"},\"audio/fwdred\":{\"source\":\"iana\"},\"audio/g711-0\":{\"source\":\"iana\"},\"audio/g719\":{\"source\":\"iana\"},\"audio/g722\":{\"source\":\"iana\"},\"audio/g7221\":{\"source\":\"iana\"},\"audio/g723\":{\"source\":\"iana\"},\"audio/g726-16\":{\"source\":\"iana\"},\"audio/g726-24\":{\"source\":\"iana\"},\"audio/g726-32\":{\"source\":\"iana\"},\"audio/g726-40\":{\"source\":\"iana\"},\"audio/g728\":{\"source\":\"iana\"},\"audio/g729\":{\"source\":\"iana\"},\"audio/g7291\":{\"source\":\"iana\"},\"audio/g729d\":{\"source\":\"iana\"},\"audio/g729e\":{\"source\":\"iana\"},\"audio/gsm\":{\"source\":\"iana\"},\"audio/gsm-efr\":{\"source\":\"iana\"},\"audio/gsm-hr-08\":{\"source\":\"iana\"},\"audio/ilbc\":{\"source\":\"iana\"},\"audio/ip-mr_v2.5\":{\"source\":\"iana\"},\"audio/isac\":{\"source\":\"apache\"},\"audio/l16\":{\"source\":\"iana\"},\"audio/l20\":{\"source\":\"iana\"},\"audio/l24\":{\"source\":\"iana\",\"compressible\":false},\"audio/l8\":{\"source\":\"iana\"},\"audio/lpc\":{\"source\":\"iana\"},\"audio/melp\":{\"source\":\"iana\"},\"audio/melp1200\":{\"source\":\"iana\"},\"audio/melp2400\":{\"source\":\"iana\"},\"audio/melp600\":{\"source\":\"iana\"},\"audio/midi\":{\"source\":\"apache\",\"extensions\":[\"mid\",\"midi\",\"kar\",\"rmi\"]},\"audio/mobile-xmf\":{\"source\":\"iana\"},\"audio/mp3\":{\"compressible\":false,\"extensions\":[\"mp3\"]},\"audio/mp4\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"m4a\",\"mp4a\"]},\"audio/mp4a-latm\":{\"source\":\"iana\"},\"audio/mpa\":{\"source\":\"iana\"},\"audio/mpa-robust\":{\"source\":\"iana\"},\"audio/mpeg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]},\"audio/mpeg4-generic\":{\"source\":\"iana\"},\"audio/musepack\":{\"source\":\"apache\"},\"audio/ogg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"oga\",\"ogg\",\"spx\"]},\"audio/opus\":{\"source\":\"iana\"},\"audio/parityfec\":{\"source\":\"iana\"},\"audio/pcma\":{\"source\":\"iana\"},\"audio/pcma-wb\":{\"source\":\"iana\"},\"audio/pcmu\":{\"source\":\"iana\"},\"audio/pcmu-wb\":{\"source\":\"iana\"},\"audio/prs.sid\":{\"source\":\"iana\"},\"audio/qcelp\":{\"source\":\"iana\"},\"audio/raptorfec\":{\"source\":\"iana\"},\"audio/red\":{\"source\":\"iana\"},\"audio/rtp-enc-aescm128\":{\"source\":\"iana\"},\"audio/rtp-midi\":{\"source\":\"iana\"},\"audio/rtploopback\":{\"source\":\"iana\"},\"audio/rtx\":{\"source\":\"iana\"},\"audio/s3m\":{\"source\":\"apache\",\"extensions\":[\"s3m\"]},\"audio/silk\":{\"source\":\"apache\",\"extensions\":[\"sil\"]},\"audio/smv\":{\"source\":\"iana\"},\"audio/smv-qcp\":{\"source\":\"iana\"},\"audio/smv0\":{\"source\":\"iana\"},\"audio/sp-midi\":{\"source\":\"iana\"},\"audio/speex\":{\"source\":\"iana\"},\"audio/t140c\":{\"source\":\"iana\"},\"audio/t38\":{\"source\":\"iana\"},\"audio/telephone-event\":{\"source\":\"iana\"},\"audio/tone\":{\"source\":\"iana\"},\"audio/uemclip\":{\"source\":\"iana\"},\"audio/ulpfec\":{\"source\":\"iana\"},\"audio/vdvi\":{\"source\":\"iana\"},\"audio/vmr-wb\":{\"source\":\"iana\"},\"audio/vnd.3gpp.iufp\":{\"source\":\"iana\"},\"audio/vnd.4sb\":{\"source\":\"iana\"},\"audio/vnd.audiokoz\":{\"source\":\"iana\"},\"audio/vnd.celp\":{\"source\":\"iana\"},\"audio/vnd.cisco.nse\":{\"source\":\"iana\"},\"audio/vnd.cmles.radio-events\":{\"source\":\"iana\"},\"audio/vnd.cns.anp1\":{\"source\":\"iana\"},\"audio/vnd.cns.inf1\":{\"source\":\"iana\"},\"audio/vnd.dece.audio\":{\"source\":\"iana\",\"extensions\":[\"uva\",\"uvva\"]},\"audio/vnd.digital-winds\":{\"source\":\"iana\",\"extensions\":[\"eol\"]},\"audio/vnd.dlna.adts\":{\"source\":\"iana\"},\"audio/vnd.dolby.heaac.1\":{\"source\":\"iana\"},\"audio/vnd.dolby.heaac.2\":{\"source\":\"iana\"},\"audio/vnd.dolby.mlp\":{\"source\":\"iana\"},\"audio/vnd.dolby.mps\":{\"source\":\"iana\"},\"audio/vnd.dolby.pl2\":{\"source\":\"iana\"},\"audio/vnd.dolby.pl2x\":{\"source\":\"iana\"},\"audio/vnd.dolby.pl2z\":{\"source\":\"iana\"},\"audio/vnd.dolby.pulse.1\":{\"source\":\"iana\"},\"audio/vnd.dra\":{\"source\":\"iana\",\"extensions\":[\"dra\"]},\"audio/vnd.dts\":{\"source\":\"iana\",\"extensions\":[\"dts\"]},\"audio/vnd.dts.hd\":{\"source\":\"iana\",\"extensions\":[\"dtshd\"]},\"audio/vnd.dvb.file\":{\"source\":\"iana\"},\"audio/vnd.everad.plj\":{\"source\":\"iana\"},\"audio/vnd.hns.audio\":{\"source\":\"iana\"},\"audio/vnd.lucent.voice\":{\"source\":\"iana\",\"extensions\":[\"lvp\"]},\"audio/vnd.ms-playready.media.pya\":{\"source\":\"iana\",\"extensions\":[\"pya\"]},\"audio/vnd.nokia.mobile-xmf\":{\"source\":\"iana\"},\"audio/vnd.nortel.vbk\":{\"source\":\"iana\"},\"audio/vnd.nuera.ecelp4800\":{\"source\":\"iana\",\"extensions\":[\"ecelp4800\"]},\"audio/vnd.nuera.ecelp7470\":{\"source\":\"iana\",\"extensions\":[\"ecelp7470\"]},\"audio/vnd.nuera.ecelp9600\":{\"source\":\"iana\",\"extensions\":[\"ecelp9600\"]},\"audio/vnd.octel.sbc\":{\"source\":\"iana\"},\"audio/vnd.presonus.multitrack\":{\"source\":\"iana\"},\"audio/vnd.qcelp\":{\"source\":\"iana\"},\"audio/vnd.rhetorex.32kadpcm\":{\"source\":\"iana\"},\"audio/vnd.rip\":{\"source\":\"iana\",\"extensions\":[\"rip\"]},\"audio/vnd.rn-realaudio\":{\"compressible\":false},\"audio/vnd.sealedmedia.softseal.mpeg\":{\"source\":\"iana\"},\"audio/vnd.vmx.cvsd\":{\"source\":\"iana\"},\"audio/vnd.wave\":{\"compressible\":false},\"audio/vorbis\":{\"source\":\"iana\",\"compressible\":false},\"audio/vorbis-config\":{\"source\":\"iana\"},\"audio/wav\":{\"compressible\":false,\"extensions\":[\"wav\"]},\"audio/wave\":{\"compressible\":false,\"extensions\":[\"wav\"]},\"audio/webm\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"weba\"]},\"audio/x-aac\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"aac\"]},\"audio/x-aiff\":{\"source\":\"apache\",\"extensions\":[\"aif\",\"aiff\",\"aifc\"]},\"audio/x-caf\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"caf\"]},\"audio/x-flac\":{\"source\":\"apache\",\"extensions\":[\"flac\"]},\"audio/x-m4a\":{\"source\":\"nginx\",\"extensions\":[\"m4a\"]},\"audio/x-matroska\":{\"source\":\"apache\",\"extensions\":[\"mka\"]},\"audio/x-mpegurl\":{\"source\":\"apache\",\"extensions\":[\"m3u\"]},\"audio/x-ms-wax\":{\"source\":\"apache\",\"extensions\":[\"wax\"]},\"audio/x-ms-wma\":{\"source\":\"apache\",\"extensions\":[\"wma\"]},\"audio/x-pn-realaudio\":{\"source\":\"apache\",\"extensions\":[\"ram\",\"ra\"]},\"audio/x-pn-realaudio-plugin\":{\"source\":\"apache\",\"extensions\":[\"rmp\"]},\"audio/x-realaudio\":{\"source\":\"nginx\",\"extensions\":[\"ra\"]},\"audio/x-tta\":{\"source\":\"apache\"},\"audio/x-wav\":{\"source\":\"apache\",\"extensions\":[\"wav\"]},\"audio/xm\":{\"source\":\"apache\",\"extensions\":[\"xm\"]},\"chemical/x-cdx\":{\"source\":\"apache\",\"extensions\":[\"cdx\"]},\"chemical/x-cif\":{\"source\":\"apache\",\"extensions\":[\"cif\"]},\"chemical/x-cmdf\":{\"source\":\"apache\",\"extensions\":[\"cmdf\"]},\"chemical/x-cml\":{\"source\":\"apache\",\"extensions\":[\"cml\"]},\"chemical/x-csml\":{\"source\":\"apache\",\"extensions\":[\"csml\"]},\"chemical/x-pdb\":{\"source\":\"apache\"},\"chemical/x-xyz\":{\"source\":\"apache\",\"extensions\":[\"xyz\"]},\"font/collection\":{\"source\":\"iana\",\"extensions\":[\"ttc\"]},\"font/otf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"otf\"]},\"font/sfnt\":{\"source\":\"iana\"},\"font/ttf\":{\"source\":\"iana\",\"extensions\":[\"ttf\"]},\"font/woff\":{\"source\":\"iana\",\"extensions\":[\"woff\"]},\"font/woff2\":{\"source\":\"iana\",\"extensions\":[\"woff2\"]},\"image/aces\":{\"source\":\"iana\"},\"image/apng\":{\"compressible\":false,\"extensions\":[\"apng\"]},\"image/bmp\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"bmp\"]},\"image/cgm\":{\"source\":\"iana\",\"extensions\":[\"cgm\"]},\"image/dicom-rle\":{\"source\":\"iana\"},\"image/emf\":{\"source\":\"iana\"},\"image/fits\":{\"source\":\"iana\"},\"image/g3fax\":{\"source\":\"iana\",\"extensions\":[\"g3\"]},\"image/gif\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"gif\"]},\"image/ief\":{\"source\":\"iana\",\"extensions\":[\"ief\"]},\"image/jls\":{\"source\":\"iana\"},\"image/jp2\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jp2\",\"jpg2\"]},\"image/jpeg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jpeg\",\"jpg\",\"jpe\"]},\"image/jpm\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jpm\"]},\"image/jpx\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jpx\",\"jpf\"]},\"image/ktx\":{\"source\":\"iana\",\"extensions\":[\"ktx\"]},\"image/naplps\":{\"source\":\"iana\"},\"image/pjpeg\":{\"compressible\":false},\"image/png\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"png\"]},\"image/prs.btif\":{\"source\":\"iana\",\"extensions\":[\"btif\"]},\"image/prs.pti\":{\"source\":\"iana\"},\"image/pwg-raster\":{\"source\":\"iana\"},\"image/sgi\":{\"source\":\"apache\",\"extensions\":[\"sgi\"]},\"image/svg+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"svg\",\"svgz\"]},\"image/t38\":{\"source\":\"iana\"},\"image/tiff\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"tiff\",\"tif\"]},\"image/tiff-fx\":{\"source\":\"iana\"},\"image/vnd.adobe.photoshop\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"psd\"]},\"image/vnd.airzip.accelerator.azv\":{\"source\":\"iana\"},\"image/vnd.cns.inf2\":{\"source\":\"iana\"},\"image/vnd.dece.graphic\":{\"source\":\"iana\",\"extensions\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]},\"image/vnd.djvu\":{\"source\":\"iana\",\"extensions\":[\"djvu\",\"djv\"]},\"image/vnd.dvb.subtitle\":{\"source\":\"iana\",\"extensions\":[\"sub\"]},\"image/vnd.dwg\":{\"source\":\"iana\",\"extensions\":[\"dwg\"]},\"image/vnd.dxf\":{\"source\":\"iana\",\"extensions\":[\"dxf\"]},\"image/vnd.fastbidsheet\":{\"source\":\"iana\",\"extensions\":[\"fbs\"]},\"image/vnd.fpx\":{\"source\":\"iana\",\"extensions\":[\"fpx\"]},\"image/vnd.fst\":{\"source\":\"iana\",\"extensions\":[\"fst\"]},\"image/vnd.fujixerox.edmics-mmr\":{\"source\":\"iana\",\"extensions\":[\"mmr\"]},\"image/vnd.fujixerox.edmics-rlc\":{\"source\":\"iana\",\"extensions\":[\"rlc\"]},\"image/vnd.globalgraphics.pgb\":{\"source\":\"iana\"},\"image/vnd.microsoft.icon\":{\"source\":\"iana\"},\"image/vnd.mix\":{\"source\":\"iana\"},\"image/vnd.mozilla.apng\":{\"source\":\"iana\"},\"image/vnd.ms-modi\":{\"source\":\"iana\",\"extensions\":[\"mdi\"]},\"image/vnd.ms-photo\":{\"source\":\"apache\",\"extensions\":[\"wdp\"]},\"image/vnd.net-fpx\":{\"source\":\"iana\",\"extensions\":[\"npx\"]},\"image/vnd.radiance\":{\"source\":\"iana\"},\"image/vnd.sealed.png\":{\"source\":\"iana\"},\"image/vnd.sealedmedia.softseal.gif\":{\"source\":\"iana\"},\"image/vnd.sealedmedia.softseal.jpg\":{\"source\":\"iana\"},\"image/vnd.svf\":{\"source\":\"iana\"},\"image/vnd.tencent.tap\":{\"source\":\"iana\"},\"image/vnd.valve.source.texture\":{\"source\":\"iana\"},\"image/vnd.wap.wbmp\":{\"source\":\"iana\",\"extensions\":[\"wbmp\"]},\"image/vnd.xiff\":{\"source\":\"iana\",\"extensions\":[\"xif\"]},\"image/vnd.zbrush.pcx\":{\"source\":\"iana\"},\"image/webp\":{\"source\":\"apache\",\"extensions\":[\"webp\"]},\"image/wmf\":{\"source\":\"iana\"},\"image/x-3ds\":{\"source\":\"apache\",\"extensions\":[\"3ds\"]},\"image/x-cmu-raster\":{\"source\":\"apache\",\"extensions\":[\"ras\"]},\"image/x-cmx\":{\"source\":\"apache\",\"extensions\":[\"cmx\"]},\"image/x-freehand\":{\"source\":\"apache\",\"extensions\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]},\"image/x-icon\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"ico\"]},\"image/x-jng\":{\"source\":\"nginx\",\"extensions\":[\"jng\"]},\"image/x-mrsid-image\":{\"source\":\"apache\",\"extensions\":[\"sid\"]},\"image/x-ms-bmp\":{\"source\":\"nginx\",\"compressible\":true,\"extensions\":[\"bmp\"]},\"image/x-pcx\":{\"source\":\"apache\",\"extensions\":[\"pcx\"]},\"image/x-pict\":{\"source\":\"apache\",\"extensions\":[\"pic\",\"pct\"]},\"image/x-portable-anymap\":{\"source\":\"apache\",\"extensions\":[\"pnm\"]},\"image/x-portable-bitmap\":{\"source\":\"apache\",\"extensions\":[\"pbm\"]},\"image/x-portable-graymap\":{\"source\":\"apache\",\"extensions\":[\"pgm\"]},\"image/x-portable-pixmap\":{\"source\":\"apache\",\"extensions\":[\"ppm\"]},\"image/x-rgb\":{\"source\":\"apache\",\"extensions\":[\"rgb\"]},\"image/x-tga\":{\"source\":\"apache\",\"extensions\":[\"tga\"]},\"image/x-xbitmap\":{\"source\":\"apache\",\"extensions\":[\"xbm\"]},\"image/x-xcf\":{\"compressible\":false},\"image/x-xpixmap\":{\"source\":\"apache\",\"extensions\":[\"xpm\"]},\"image/x-xwindowdump\":{\"source\":\"apache\",\"extensions\":[\"xwd\"]},\"message/cpim\":{\"source\":\"iana\"},\"message/delivery-status\":{\"source\":\"iana\"},\"message/disposition-notification\":{\"source\":\"iana\",\"extensions\":[\"disposition-notification\"]},\"message/external-body\":{\"source\":\"iana\"},\"message/feedback-report\":{\"source\":\"iana\"},\"message/global\":{\"source\":\"iana\",\"extensions\":[\"u8msg\"]},\"message/global-delivery-status\":{\"source\":\"iana\",\"extensions\":[\"u8dsn\"]},\"message/global-disposition-notification\":{\"source\":\"iana\",\"extensions\":[\"u8mdn\"]},\"message/global-headers\":{\"source\":\"iana\",\"extensions\":[\"u8hdr\"]},\"message/http\":{\"source\":\"iana\",\"compressible\":false},\"message/imdn+xml\":{\"source\":\"iana\",\"compressible\":true},\"message/news\":{\"source\":\"iana\"},\"message/partial\":{\"source\":\"iana\",\"compressible\":false},\"message/rfc822\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"eml\",\"mime\"]},\"message/s-http\":{\"source\":\"iana\"},\"message/sip\":{\"source\":\"iana\"},\"message/sipfrag\":{\"source\":\"iana\"},\"message/tracking-status\":{\"source\":\"iana\"},\"message/vnd.si.simp\":{\"source\":\"iana\"},\"message/vnd.wfa.wsc\":{\"source\":\"iana\",\"extensions\":[\"wsc\"]},\"model/3mf\":{\"source\":\"iana\"},\"model/gltf+json\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"gltf\"]},\"model/gltf-binary\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"glb\"]},\"model/iges\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"igs\",\"iges\"]},\"model/mesh\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"msh\",\"mesh\",\"silo\"]},\"model/vnd.collada+xml\":{\"source\":\"iana\",\"extensions\":[\"dae\"]},\"model/vnd.dwf\":{\"source\":\"iana\",\"extensions\":[\"dwf\"]},\"model/vnd.flatland.3dml\":{\"source\":\"iana\"},\"model/vnd.gdl\":{\"source\":\"iana\",\"extensions\":[\"gdl\"]},\"model/vnd.gs-gdl\":{\"source\":\"apache\"},\"model/vnd.gs.gdl\":{\"source\":\"iana\"},\"model/vnd.gtw\":{\"source\":\"iana\",\"extensions\":[\"gtw\"]},\"model/vnd.moml+xml\":{\"source\":\"iana\"},\"model/vnd.mts\":{\"source\":\"iana\",\"extensions\":[\"mts\"]},\"model/vnd.opengex\":{\"source\":\"iana\"},\"model/vnd.parasolid.transmit.binary\":{\"source\":\"iana\"},\"model/vnd.parasolid.transmit.text\":{\"source\":\"iana\"},\"model/vnd.rosette.annotated-data-model\":{\"source\":\"iana\"},\"model/vnd.valve.source.compiled-map\":{\"source\":\"iana\"},\"model/vnd.vtu\":{\"source\":\"iana\",\"extensions\":[\"vtu\"]},\"model/vrml\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"wrl\",\"vrml\"]},\"model/x3d+binary\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"x3db\",\"x3dbz\"]},\"model/x3d+fastinfoset\":{\"source\":\"iana\"},\"model/x3d+vrml\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"x3dv\",\"x3dvz\"]},\"model/x3d+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"x3d\",\"x3dz\"]},\"model/x3d-vrml\":{\"source\":\"iana\"},\"multipart/alternative\":{\"source\":\"iana\",\"compressible\":false},\"multipart/appledouble\":{\"source\":\"iana\"},\"multipart/byteranges\":{\"source\":\"iana\"},\"multipart/digest\":{\"source\":\"iana\"},\"multipart/encrypted\":{\"source\":\"iana\",\"compressible\":false},\"multipart/form-data\":{\"source\":\"iana\",\"compressible\":false},\"multipart/header-set\":{\"source\":\"iana\"},\"multipart/mixed\":{\"source\":\"iana\",\"compressible\":false},\"multipart/multilingual\":{\"source\":\"iana\"},\"multipart/parallel\":{\"source\":\"iana\"},\"multipart/related\":{\"source\":\"iana\",\"compressible\":false},\"multipart/report\":{\"source\":\"iana\"},\"multipart/signed\":{\"source\":\"iana\",\"compressible\":false},\"multipart/vnd.bint.med-plus\":{\"source\":\"iana\"},\"multipart/voice-message\":{\"source\":\"iana\"},\"multipart/x-mixed-replace\":{\"source\":\"iana\"},\"text/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"text/cache-manifest\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"appcache\",\"manifest\"]},\"text/calendar\":{\"source\":\"iana\",\"extensions\":[\"ics\",\"ifb\"]},\"text/calender\":{\"compressible\":true},\"text/cmd\":{\"compressible\":true},\"text/coffeescript\":{\"extensions\":[\"coffee\",\"litcoffee\"]},\"text/css\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"css\"]},\"text/csv\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"csv\"]},\"text/csv-schema\":{\"source\":\"iana\"},\"text/directory\":{\"source\":\"iana\"},\"text/dns\":{\"source\":\"iana\"},\"text/ecmascript\":{\"source\":\"iana\"},\"text/encaprtp\":{\"source\":\"iana\"},\"text/enriched\":{\"source\":\"iana\"},\"text/fwdred\":{\"source\":\"iana\"},\"text/grammar-ref-list\":{\"source\":\"iana\"},\"text/html\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"html\",\"htm\",\"shtml\"]},\"text/jade\":{\"extensions\":[\"jade\"]},\"text/javascript\":{\"source\":\"iana\",\"compressible\":true},\"text/jcr-cnd\":{\"source\":\"iana\"},\"text/jsx\":{\"compressible\":true,\"extensions\":[\"jsx\"]},\"text/less\":{\"extensions\":[\"less\"]},\"text/markdown\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"markdown\",\"md\"]},\"text/mathml\":{\"source\":\"nginx\",\"extensions\":[\"mml\"]},\"text/mizar\":{\"source\":\"iana\"},\"text/n3\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"n3\"]},\"text/parameters\":{\"source\":\"iana\"},\"text/parityfec\":{\"source\":\"iana\"},\"text/plain\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]},\"text/provenance-notation\":{\"source\":\"iana\"},\"text/prs.fallenstein.rst\":{\"source\":\"iana\"},\"text/prs.lines.tag\":{\"source\":\"iana\",\"extensions\":[\"dsc\"]},\"text/prs.prop.logic\":{\"source\":\"iana\"},\"text/raptorfec\":{\"source\":\"iana\"},\"text/red\":{\"source\":\"iana\"},\"text/rfc822-headers\":{\"source\":\"iana\"},\"text/richtext\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rtx\"]},\"text/rtf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rtf\"]},\"text/rtp-enc-aescm128\":{\"source\":\"iana\"},\"text/rtploopback\":{\"source\":\"iana\"},\"text/rtx\":{\"source\":\"iana\"},\"text/sgml\":{\"source\":\"iana\",\"extensions\":[\"sgml\",\"sgm\"]},\"text/shex\":{\"extensions\":[\"shex\"]},\"text/slim\":{\"extensions\":[\"slim\",\"slm\"]},\"text/strings\":{\"source\":\"iana\"},\"text/stylus\":{\"extensions\":[\"stylus\",\"styl\"]},\"text/t140\":{\"source\":\"iana\"},\"text/tab-separated-values\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"tsv\"]},\"text/troff\":{\"source\":\"iana\",\"extensions\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]},\"text/turtle\":{\"source\":\"iana\",\"extensions\":[\"ttl\"]},\"text/ulpfec\":{\"source\":\"iana\"},\"text/uri-list\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"uri\",\"uris\",\"urls\"]},\"text/vcard\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"vcard\"]},\"text/vnd.a\":{\"source\":\"iana\"},\"text/vnd.abc\":{\"source\":\"iana\"},\"text/vnd.ascii-art\":{\"source\":\"iana\"},\"text/vnd.curl\":{\"source\":\"iana\",\"extensions\":[\"curl\"]},\"text/vnd.curl.dcurl\":{\"source\":\"apache\",\"extensions\":[\"dcurl\"]},\"text/vnd.curl.mcurl\":{\"source\":\"apache\",\"extensions\":[\"mcurl\"]},\"text/vnd.curl.scurl\":{\"source\":\"apache\",\"extensions\":[\"scurl\"]},\"text/vnd.debian.copyright\":{\"source\":\"iana\"},\"text/vnd.dmclientscript\":{\"source\":\"iana\"},\"text/vnd.dvb.subtitle\":{\"source\":\"iana\",\"extensions\":[\"sub\"]},\"text/vnd.esmertec.theme-descriptor\":{\"source\":\"iana\"},\"text/vnd.fly\":{\"source\":\"iana\",\"extensions\":[\"fly\"]},\"text/vnd.fmi.flexstor\":{\"source\":\"iana\",\"extensions\":[\"flx\"]},\"text/vnd.graphviz\":{\"source\":\"iana\",\"extensions\":[\"gv\"]},\"text/vnd.in3d.3dml\":{\"source\":\"iana\",\"extensions\":[\"3dml\"]},\"text/vnd.in3d.spot\":{\"source\":\"iana\",\"extensions\":[\"spot\"]},\"text/vnd.iptc.newsml\":{\"source\":\"iana\"},\"text/vnd.iptc.nitf\":{\"source\":\"iana\"},\"text/vnd.latex-z\":{\"source\":\"iana\"},\"text/vnd.motorola.reflex\":{\"source\":\"iana\"},\"text/vnd.ms-mediapackage\":{\"source\":\"iana\"},\"text/vnd.net2phone.commcenter.command\":{\"source\":\"iana\"},\"text/vnd.radisys.msml-basic-layout\":{\"source\":\"iana\"},\"text/vnd.si.uricatalogue\":{\"source\":\"iana\"},\"text/vnd.sun.j2me.app-descriptor\":{\"source\":\"iana\",\"extensions\":[\"jad\"]},\"text/vnd.trolltech.linguist\":{\"source\":\"iana\"},\"text/vnd.wap.si\":{\"source\":\"iana\"},\"text/vnd.wap.sl\":{\"source\":\"iana\"},\"text/vnd.wap.wml\":{\"source\":\"iana\",\"extensions\":[\"wml\"]},\"text/vnd.wap.wmlscript\":{\"source\":\"iana\",\"extensions\":[\"wmls\"]},\"text/vtt\":{\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"vtt\"]},\"text/x-asm\":{\"source\":\"apache\",\"extensions\":[\"s\",\"asm\"]},\"text/x-c\":{\"source\":\"apache\",\"extensions\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]},\"text/x-component\":{\"source\":\"nginx\",\"extensions\":[\"htc\"]},\"text/x-fortran\":{\"source\":\"apache\",\"extensions\":[\"f\",\"for\",\"f77\",\"f90\"]},\"text/x-gwt-rpc\":{\"compressible\":true},\"text/x-handlebars-template\":{\"extensions\":[\"hbs\"]},\"text/x-java-source\":{\"source\":\"apache\",\"extensions\":[\"java\"]},\"text/x-jquery-tmpl\":{\"compressible\":true},\"text/x-lua\":{\"extensions\":[\"lua\"]},\"text/x-markdown\":{\"compressible\":true,\"extensions\":[\"mkd\"]},\"text/x-nfo\":{\"source\":\"apache\",\"extensions\":[\"nfo\"]},\"text/x-opml\":{\"source\":\"apache\",\"extensions\":[\"opml\"]},\"text/x-org\":{\"compressible\":true,\"extensions\":[\"org\"]},\"text/x-pascal\":{\"source\":\"apache\",\"extensions\":[\"p\",\"pas\"]},\"text/x-processing\":{\"compressible\":true,\"extensions\":[\"pde\"]},\"text/x-sass\":{\"extensions\":[\"sass\"]},\"text/x-scss\":{\"extensions\":[\"scss\"]},\"text/x-setext\":{\"source\":\"apache\",\"extensions\":[\"etx\"]},\"text/x-sfv\":{\"source\":\"apache\",\"extensions\":[\"sfv\"]},\"text/x-suse-ymp\":{\"compressible\":true,\"extensions\":[\"ymp\"]},\"text/x-uuencode\":{\"source\":\"apache\",\"extensions\":[\"uu\"]},\"text/x-vcalendar\":{\"source\":\"apache\",\"extensions\":[\"vcs\"]},\"text/x-vcard\":{\"source\":\"apache\",\"extensions\":[\"vcf\"]},\"text/xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xml\"]},\"text/xml-external-parsed-entity\":{\"source\":\"iana\"},\"text/yaml\":{\"extensions\":[\"yaml\",\"yml\"]},\"video/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"video/3gpp\":{\"source\":\"iana\",\"extensions\":[\"3gp\",\"3gpp\"]},\"video/3gpp-tt\":{\"source\":\"iana\"},\"video/3gpp2\":{\"source\":\"iana\",\"extensions\":[\"3g2\"]},\"video/bmpeg\":{\"source\":\"iana\"},\"video/bt656\":{\"source\":\"iana\"},\"video/celb\":{\"source\":\"iana\"},\"video/dv\":{\"source\":\"iana\"},\"video/encaprtp\":{\"source\":\"iana\"},\"video/h261\":{\"source\":\"iana\",\"extensions\":[\"h261\"]},\"video/h263\":{\"source\":\"iana\",\"extensions\":[\"h263\"]},\"video/h263-1998\":{\"source\":\"iana\"},\"video/h263-2000\":{\"source\":\"iana\"},\"video/h264\":{\"source\":\"iana\",\"extensions\":[\"h264\"]},\"video/h264-rcdo\":{\"source\":\"iana\"},\"video/h264-svc\":{\"source\":\"iana\"},\"video/h265\":{\"source\":\"iana\"},\"video/iso.segment\":{\"source\":\"iana\"},\"video/jpeg\":{\"source\":\"iana\",\"extensions\":[\"jpgv\"]},\"video/jpeg2000\":{\"source\":\"iana\"},\"video/jpm\":{\"source\":\"apache\",\"extensions\":[\"jpm\",\"jpgm\"]},\"video/mj2\":{\"source\":\"iana\",\"extensions\":[\"mj2\",\"mjp2\"]},\"video/mp1s\":{\"source\":\"iana\"},\"video/mp2p\":{\"source\":\"iana\"},\"video/mp2t\":{\"source\":\"iana\",\"extensions\":[\"ts\"]},\"video/mp4\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"mp4\",\"mp4v\",\"mpg4\"]},\"video/mp4v-es\":{\"source\":\"iana\"},\"video/mpeg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]},\"video/mpeg4-generic\":{\"source\":\"iana\"},\"video/mpv\":{\"source\":\"iana\"},\"video/nv\":{\"source\":\"iana\"},\"video/ogg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ogv\"]},\"video/parityfec\":{\"source\":\"iana\"},\"video/pointer\":{\"source\":\"iana\"},\"video/quicktime\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"qt\",\"mov\"]},\"video/raptorfec\":{\"source\":\"iana\"},\"video/raw\":{\"source\":\"iana\"},\"video/rtp-enc-aescm128\":{\"source\":\"iana\"},\"video/rtploopback\":{\"source\":\"iana\"},\"video/rtx\":{\"source\":\"iana\"},\"video/smpte291\":{\"source\":\"iana\"},\"video/smpte292m\":{\"source\":\"iana\"},\"video/ulpfec\":{\"source\":\"iana\"},\"video/vc1\":{\"source\":\"iana\"},\"video/vnd.cctv\":{\"source\":\"iana\"},\"video/vnd.dece.hd\":{\"source\":\"iana\",\"extensions\":[\"uvh\",\"uvvh\"]},\"video/vnd.dece.mobile\":{\"source\":\"iana\",\"extensions\":[\"uvm\",\"uvvm\"]},\"video/vnd.dece.mp4\":{\"source\":\"iana\"},\"video/vnd.dece.pd\":{\"source\":\"iana\",\"extensions\":[\"uvp\",\"uvvp\"]},\"video/vnd.dece.sd\":{\"source\":\"iana\",\"extensions\":[\"uvs\",\"uvvs\"]},\"video/vnd.dece.video\":{\"source\":\"iana\",\"extensions\":[\"uvv\",\"uvvv\"]},\"video/vnd.directv.mpeg\":{\"source\":\"iana\"},\"video/vnd.directv.mpeg-tts\":{\"source\":\"iana\"},\"video/vnd.dlna.mpeg-tts\":{\"source\":\"iana\"},\"video/vnd.dvb.file\":{\"source\":\"iana\",\"extensions\":[\"dvb\"]},\"video/vnd.fvt\":{\"source\":\"iana\",\"extensions\":[\"fvt\"]},\"video/vnd.hns.video\":{\"source\":\"iana\"},\"video/vnd.iptvforum.1dparityfec-1010\":{\"source\":\"iana\"},\"video/vnd.iptvforum.1dparityfec-2005\":{\"source\":\"iana\"},\"video/vnd.iptvforum.2dparityfec-1010\":{\"source\":\"iana\"},\"video/vnd.iptvforum.2dparityfec-2005\":{\"source\":\"iana\"},\"video/vnd.iptvforum.ttsavc\":{\"source\":\"iana\"},\"video/vnd.iptvforum.ttsmpeg2\":{\"source\":\"iana\"},\"video/vnd.motorola.video\":{\"source\":\"iana\"},\"video/vnd.motorola.videop\":{\"source\":\"iana\"},\"video/vnd.mpegurl\":{\"source\":\"iana\",\"extensions\":[\"mxu\",\"m4u\"]},\"video/vnd.ms-playready.media.pyv\":{\"source\":\"iana\",\"extensions\":[\"pyv\"]},\"video/vnd.nokia.interleaved-multimedia\":{\"source\":\"iana\"},\"video/vnd.nokia.mp4vr\":{\"source\":\"iana\"},\"video/vnd.nokia.videovoip\":{\"source\":\"iana\"},\"video/vnd.objectvideo\":{\"source\":\"iana\"},\"video/vnd.radgamettools.bink\":{\"source\":\"iana\"},\"video/vnd.radgamettools.smacker\":{\"source\":\"iana\"},\"video/vnd.sealed.mpeg1\":{\"source\":\"iana\"},\"video/vnd.sealed.mpeg4\":{\"source\":\"iana\"},\"video/vnd.sealed.swf\":{\"source\":\"iana\"},\"video/vnd.sealedmedia.softseal.mov\":{\"source\":\"iana\"},\"video/vnd.uvvu.mp4\":{\"source\":\"iana\",\"extensions\":[\"uvu\",\"uvvu\"]},\"video/vnd.vivo\":{\"source\":\"iana\",\"extensions\":[\"viv\"]},\"video/vp8\":{\"source\":\"iana\"},\"video/webm\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"webm\"]},\"video/x-f4v\":{\"source\":\"apache\",\"extensions\":[\"f4v\"]},\"video/x-fli\":{\"source\":\"apache\",\"extensions\":[\"fli\"]},\"video/x-flv\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"flv\"]},\"video/x-m4v\":{\"source\":\"apache\",\"extensions\":[\"m4v\"]},\"video/x-matroska\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"mkv\",\"mk3d\",\"mks\"]},\"video/x-mng\":{\"source\":\"apache\",\"extensions\":[\"mng\"]},\"video/x-ms-asf\":{\"source\":\"apache\",\"extensions\":[\"asf\",\"asx\"]},\"video/x-ms-vob\":{\"source\":\"apache\",\"extensions\":[\"vob\"]},\"video/x-ms-wm\":{\"source\":\"apache\",\"extensions\":[\"wm\"]},\"video/x-ms-wmv\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"wmv\"]},\"video/x-ms-wmx\":{\"source\":\"apache\",\"extensions\":[\"wmx\"]},\"video/x-ms-wvx\":{\"source\":\"apache\",\"extensions\":[\"wvx\"]},\"video/x-msvideo\":{\"source\":\"apache\",\"extensions\":[\"avi\"]},\"video/x-sgi-movie\":{\"source\":\"apache\",\"extensions\":[\"movie\"]},\"video/x-smv\":{\"source\":\"apache\",\"extensions\":[\"smv\"]},\"x-conference/x-cooltalk\":{\"source\":\"apache\",\"extensions\":[\"ice\"]},\"x-shader/x-fragment\":{\"compressible\":true},\"x-shader/x-vertex\":{\"compressible\":true}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/mime-db/db.json\n// module id = 30\n// module chunks = 0","'use strict';\n\nvar sortKeys = require('sort-keys');\n\n/**\n * Sort object keys by length\n *\n * @param obj\n * @api public\n */\n\nmodule.exports.desc = function (obj) {\n\treturn sortKeys(obj, function (a, b) {\n\t\treturn b.length - a.length;\n\t});\n}\n\nmodule.exports.asc = function (obj) {\n\treturn sortKeys(obj, function (a, b) {\n\t\treturn a.length - b.length;\n\t});\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/sort-keys-length/index.js\n// module id = 31\n// module chunks = 0","'use strict';\nvar isPlainObj = require('is-plain-obj');\n\nmodule.exports = function (obj, opts) {\n\tif (!isPlainObj(obj)) {\n\t\tthrow new TypeError('Expected a plain object');\n\t}\n\n\topts = opts || {};\n\n\t// DEPRECATED\n\tif (typeof opts === 'function') {\n\t\topts = {compare: opts};\n\t}\n\n\tvar deep = opts.deep;\n\tvar seenInput = [];\n\tvar seenOutput = [];\n\n\tvar sortKeys = function (x) {\n\t\tvar seenIndex = seenInput.indexOf(x);\n\n\t\tif (seenIndex !== -1) {\n\t\t\treturn seenOutput[seenIndex];\n\t\t}\n\n\t\tvar ret = {};\n\t\tvar keys = Object.keys(x).sort(opts.compare);\n\n\t\tseenInput.push(x);\n\t\tseenOutput.push(ret);\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tvar val = x[key];\n\n\t\t\tret[key] = deep && isPlainObj(val) ? sortKeys(val) : val;\n\t\t}\n\n\t\treturn ret;\n\t};\n\n\treturn sortKeys(obj);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/sort-keys/index.js\n// module id = 32\n// module chunks = 0","'use strict';\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n\tvar prototype;\n\treturn toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/is-plain-obj/index.js\n// module id = 33\n// module chunks = 0","import { BrowserWindow, ipcMain } from 'electron';\nimport path from 'path';\n\nfunction createLoginWindow(loginCallback) {\n const loginWindow = new BrowserWindow({\n width: 300,\n height: 400,\n frame: false,\n resizable: false,\n });\n loginWindow.loadURL(\n `file://${path.join(__dirname, '/static/login/login.html')}`,\n );\n\n ipcMain.once('login-message', (event, usernameAndPassword) => {\n loginCallback(usernameAndPassword[0], usernameAndPassword[1]);\n loginWindow.close();\n });\n return loginWindow;\n}\n\nexport default createLoginWindow;\n\n\n\n// WEBPACK FOOTER //\n// ./app/src/components/login/loginWindow.js","import fs from 'fs';\nimport path from 'path';\nimport { BrowserWindow, shell, ipcMain, dialog } from 'electron';\nimport windowStateKeeper from 'electron-window-state';\nimport mainWindowHelpers from './mainWindowHelpers';\nimport helpers from './../../helpers/helpers';\nimport createMenu from './../menu/menu';\nimport initContextMenu from './../contextMenu/contextMenu';\n\nconst {\n isOSX,\n linkIsInternal,\n getCssToInject,\n shouldInjectCss,\n getAppIcon,\n nativeTabsSupported,\n getCounterValue,\n} = helpers;\n\nconst { onNewWindowHelper } = mainWindowHelpers;\n\nconst ZOOM_INTERVAL = 0.1;\n\nfunction maybeHideWindow(window, event, fastQuit, tray) {\n if (isOSX() && !fastQuit) {\n // this is called when exiting from clicking the cross button on the window\n event.preventDefault();\n window.hide();\n } else if (!fastQuit && tray) {\n event.preventDefault();\n window.hide();\n }\n // will close the window on other platforms\n}\n\nfunction maybeInjectCss(browserWindow) {\n if (!shouldInjectCss()) {\n return;\n }\n\n const cssToInject = getCssToInject();\n\n const injectCss = () => {\n browserWindow.webContents.insertCSS(cssToInject);\n };\n\n browserWindow.webContents.on('did-finish-load', () => {\n // remove the injection of css the moment the page is loaded\n browserWindow.webContents.removeListener(\n 'did-get-response-details',\n injectCss,\n );\n });\n\n // on every page navigation inject the css\n browserWindow.webContents.on('did-navigate', () => {\n // we have to inject the css in did-get-response-details to prevent the fouc\n // will run multiple times\n browserWindow.webContents.on('did-get-response-details', injectCss);\n });\n}\n\n/**\n *\n * @param {{}} inpOptions AppArgs from nativefier.json\n * @param {function} onAppQuit\n * @param {function} setDockBadge\n * @returns {electron.BrowserWindow}\n */\nfunction createMainWindow(inpOptions, onAppQuit, setDockBadge) {\n const options = Object.assign({}, inpOptions);\n const mainWindowState = windowStateKeeper({\n defaultWidth: options.width || 1280,\n defaultHeight: options.height || 800,\n });\n\n const DEFAULT_WINDOW_OPTIONS = {\n // Convert dashes to spaces because on linux the app name is joined with dashes\n title: options.name,\n tabbingIdentifier: nativeTabsSupported() ? options.name : undefined,\n webPreferences: {\n javascript: true,\n plugins: true,\n // node globals causes problems with sites like messenger.com\n nodeIntegration: false,\n webSecurity: !options.insecure,\n preload: path.join(__dirname, 'static', 'preload.js'),\n zoomFactor: options.zoom,\n },\n };\n\n const mainWindow = new BrowserWindow(\n Object.assign(\n {\n frame: !options.hideWindowFrame,\n width: mainWindowState.width,\n height: mainWindowState.height,\n minWidth: options.minWidth,\n minHeight: options.minHeight,\n maxWidth: options.maxWidth,\n maxHeight: options.maxHeight,\n x: options.x,\n y: options.y,\n autoHideMenuBar: !options.showMenuBar,\n // after webpack path here should reference `resources/app/`\n icon: getAppIcon(),\n // set to undefined and not false because explicitly setting to false will disable full screen\n fullscreen: options.fullScreen || undefined,\n // Whether the window should always stay on top of other windows. Default is false.\n alwaysOnTop: options.alwaysOnTop,\n titleBarStyle: options.titleBarStyle,\n },\n DEFAULT_WINDOW_OPTIONS,\n ),\n );\n\n mainWindowState.manage(mainWindow);\n\n // after first run, no longer force maximize to be true\n if (options.maximize) {\n mainWindow.maximize();\n options.maximize = undefined;\n fs.writeFileSync(\n path.join(__dirname, '..', 'nativefier.json'),\n JSON.stringify(options),\n );\n }\n\n const withFocusedWindow = (block) => {\n const focusedWindow = BrowserWindow.getFocusedWindow();\n if (focusedWindow) {\n block(focusedWindow);\n }\n };\n\n const adjustWindowZoom = (window, adjustment) => {\n window.webContents.getZoomFactor((zoomFactor) => {\n window.webContents.setZoomFactor(zoomFactor + adjustment);\n });\n };\n\n const onZoomIn = () => {\n withFocusedWindow((focusedWindow) =>\n adjustWindowZoom(focusedWindow, ZOOM_INTERVAL),\n );\n };\n\n const onZoomOut = () => {\n withFocusedWindow((focusedWindow) =>\n adjustWindowZoom(focusedWindow, -ZOOM_INTERVAL),\n );\n };\n\n const onZoomReset = () => {\n withFocusedWindow((focusedWindow) => {\n focusedWindow.webContents.setZoomFactor(options.zoom);\n });\n };\n\n const clearAppData = () => {\n dialog.showMessageBox(\n mainWindow,\n {\n type: 'warning',\n buttons: ['Yes', 'Cancel'],\n defaultId: 1,\n title: 'Clear cache confirmation',\n message:\n 'This will clear all data (cookies, local storage etc) from this app. Are you sure you wish to proceed?',\n },\n (response) => {\n if (response !== 0) {\n return;\n }\n const { session } = mainWindow.webContents;\n session.clearStorageData(() => {\n session.clearCache(() => {\n mainWindow.loadURL(options.targetUrl);\n });\n });\n },\n );\n };\n\n const onGoBack = () => {\n withFocusedWindow((focusedWindow) => {\n focusedWindow.webContents.goBack();\n });\n };\n\n const onGoForward = () => {\n withFocusedWindow((focusedWindow) => {\n focusedWindow.webContents.goForward();\n });\n };\n\n const getCurrentUrl = () => {\n withFocusedWindow((focusedWindow) => {\n focusedWindow.webContents.getURL();\n });\n };\n\n const onWillNavigate = (event, urlToGo) => {\n if (!linkIsInternal(options.targetUrl, urlToGo, options.internalUrls)) {\n event.preventDefault();\n shell.openExternal(urlToGo);\n }\n };\n\n let createNewWindow;\n\n const createNewTab = (url, foreground) => {\n withFocusedWindow((focusedWindow) => {\n const newTab = createNewWindow(url);\n focusedWindow.addTabbedWindow(newTab);\n if (!foreground) {\n focusedWindow.focus();\n }\n return newTab;\n });\n return undefined;\n };\n\n const createAboutBlankWindow = () => {\n const window = createNewWindow('about:blank');\n window.hide();\n window.webContents.once('did-stop-loading', () => {\n if (window.webContents.getURL() === 'about:blank') {\n window.close();\n } else {\n window.show();\n }\n });\n return window;\n };\n\n const onNewWindow = (event, urlToGo, _, disposition) => {\n const preventDefault = (newGuest) => {\n event.preventDefault();\n if (newGuest) {\n // eslint-disable-next-line no-param-reassign\n event.newGuest = newGuest;\n }\n };\n onNewWindowHelper(\n urlToGo,\n disposition,\n options.targetUrl,\n options.internalUrls,\n preventDefault,\n shell.openExternal,\n createAboutBlankWindow,\n nativeTabsSupported,\n createNewTab,\n );\n };\n\n const sendParamsOnDidFinishLoad = (window) => {\n window.webContents.on('did-finish-load', () => {\n window.webContents.send('params', JSON.stringify(options));\n });\n };\n\n createNewWindow = (url) => {\n const window = new BrowserWindow(DEFAULT_WINDOW_OPTIONS);\n if (options.userAgent) {\n window.webContents.setUserAgent(options.userAgent);\n }\n maybeInjectCss(window);\n sendParamsOnDidFinishLoad(window);\n window.webContents.on('new-window', onNewWindow);\n window.webContents.on('will-navigate', onWillNavigate);\n window.loadURL(url);\n return window;\n };\n\n const menuOptions = {\n nativefierVersion: options.nativefierVersion,\n appQuit: onAppQuit,\n zoomIn: onZoomIn,\n zoomOut: onZoomOut,\n zoomReset: onZoomReset,\n zoomBuildTimeValue: options.zoom,\n goBack: onGoBack,\n goForward: onGoForward,\n getCurrentUrl,\n clearAppData,\n disableDevTools: options.disableDevTools,\n };\n\n createMenu(menuOptions);\n if (!options.disableContextMenu) {\n initContextMenu(\n createNewWindow,\n nativeTabsSupported() ? createNewTab : undefined,\n );\n }\n\n if (options.userAgent) {\n mainWindow.webContents.setUserAgent(options.userAgent);\n }\n\n maybeInjectCss(mainWindow);\n sendParamsOnDidFinishLoad(mainWindow);\n\n if (options.counter) {\n mainWindow.on('page-title-updated', (e, title) => {\n const counterValue = getCounterValue(title);\n if (counterValue) {\n setDockBadge(counterValue, options.bounce);\n } else {\n setDockBadge('');\n }\n });\n } else {\n ipcMain.on('notification', () => {\n if (!isOSX() || mainWindow.isFocused()) {\n return;\n }\n setDockBadge('•', options.bounce);\n });\n mainWindow.on('focus', () => {\n setDockBadge('');\n });\n }\n\n mainWindow.webContents.on('new-window', onNewWindow);\n mainWindow.webContents.on('will-navigate', onWillNavigate);\n\n mainWindow.loadURL(options.targetUrl);\n\n mainWindow.on('new-tab', () => createNewTab(options.targetUrl, true));\n\n mainWindow.on('close', (event) => {\n if (mainWindow.isFullScreen()) {\n if (nativeTabsSupported()) {\n mainWindow.moveTabToNewWindow();\n }\n mainWindow.setFullScreen(false);\n mainWindow.once(\n 'leave-full-screen',\n maybeHideWindow.bind(this, mainWindow, event, options.fastQuit),\n );\n }\n maybeHideWindow(mainWindow, event, options.fastQuit, options.tray);\n });\n\n return mainWindow;\n}\n\nexport default createMainWindow;\n\n\n\n// WEBPACK FOOTER //\n// ./app/src/components/mainWindow/mainWindow.js","'use strict';\n\nvar path = require('path');\nvar electron = require('electron');\nvar jsonfile = require('jsonfile');\nvar mkdirp = require('mkdirp');\nvar deepEqual = require('deep-equal');\n\nmodule.exports = function (options) {\n var app = electron.app || electron.remote.app;\n var screen = electron.screen || electron.remote.screen;\n var state;\n var winRef;\n var stateChangeTimer;\n var eventHandlingDelay = 100;\n var config = Object.assign({\n file: 'window-state.json',\n path: app.getPath('userData'),\n maximize: true,\n fullScreen: true\n }, options);\n var fullStoreFileName = path.join(config.path, config.file);\n\n function isNormal(win) {\n return !win.isMaximized() && !win.isMinimized() && !win.isFullScreen();\n }\n\n function hasBounds() {\n return state &&\n Number.isInteger(state.x) &&\n Number.isInteger(state.y) &&\n Number.isInteger(state.width) && state.width > 0 &&\n Number.isInteger(state.height) && state.height > 0;\n }\n\n function validateState() {\n var isValid = state && (hasBounds() || state.isMaximized || state.isFullScreen);\n if (!isValid) {\n state = null;\n return;\n }\n\n if (hasBounds() && state.displayBounds) {\n // Check if the display where the window was last open is still available\n var displayBounds = screen.getDisplayMatching(state).bounds;\n var sameBounds = deepEqual(state.displayBounds, displayBounds, {strict: true});\n if (!sameBounds) {\n if (displayBounds.width < state.displayBounds.width) {\n if (state.x > displayBounds.width) {\n state.x = 0;\n }\n\n if (state.width > displayBounds.width) {\n state.width = displayBounds.width;\n }\n }\n\n if (displayBounds.height < state.displayBounds.height) {\n if (state.y > displayBounds.height) {\n state.y = 0;\n }\n\n if (state.height > displayBounds.height) {\n state.height = displayBounds.height;\n }\n }\n }\n }\n }\n\n function updateState(win) {\n win = win || winRef;\n if (!win) {\n return;\n }\n // don't throw an error when window was closed\n try {\n var winBounds = win.getBounds();\n if (isNormal(win)) {\n state.x = winBounds.x;\n state.y = winBounds.y;\n state.width = winBounds.width;\n state.height = winBounds.height;\n }\n state.isMaximized = win.isMaximized();\n state.isFullScreen = win.isFullScreen();\n state.displayBounds = screen.getDisplayMatching(winBounds).bounds;\n } catch (err) {}\n }\n\n function saveState(win) {\n // Update window state only if it was provided\n if (win) {\n updateState(win);\n }\n\n // Save state\n try {\n mkdirp.sync(path.dirname(fullStoreFileName));\n jsonfile.writeFileSync(fullStoreFileName, state);\n } catch (err) {\n // Don't care\n }\n }\n\n function stateChangeHandler() {\n // Handles both 'resize' and 'move'\n clearTimeout(stateChangeTimer);\n stateChangeTimer = setTimeout(updateState, eventHandlingDelay);\n }\n\n function closeHandler() {\n updateState();\n }\n\n function closedHandler() {\n // Unregister listeners and save state\n unmanage();\n saveState();\n }\n\n function manage(win) {\n if (config.maximize && state.isMaximized) {\n win.maximize();\n }\n if (config.fullScreen && state.isFullScreen) {\n win.setFullScreen(true);\n }\n win.on('resize', stateChangeHandler);\n win.on('move', stateChangeHandler);\n win.on('close', closeHandler);\n win.on('closed', closedHandler);\n winRef = win;\n }\n\n function unmanage() {\n if (winRef) {\n winRef.removeListener('resize', stateChangeHandler);\n winRef.removeListener('move', stateChangeHandler);\n clearTimeout(stateChangeTimer);\n winRef.removeListener('close', closeHandler);\n winRef.removeListener('closed', closedHandler);\n winRef = null;\n }\n }\n\n // Load previous state\n try {\n state = jsonfile.readFileSync(fullStoreFileName);\n } catch (err) {\n // Don't care\n }\n\n // Check state validity\n validateState();\n\n // Set state fallback values\n state = Object.assign({\n width: config.defaultWidth || 800,\n height: config.defaultHeight || 600\n }, state);\n\n return {\n get x() { return state.x; },\n get y() { return state.y; },\n get width() { return state.width; },\n get height() { return state.height; },\n get isMaximized() { return state.isMaximized; },\n get isFullScreen() { return state.isFullScreen; },\n saveState: saveState,\n unmanage: unmanage,\n manage: manage\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/electron-window-state/index.js\n// module id = 36\n// module chunks = 0","var _fs\ntry {\n _fs = require('graceful-fs')\n} catch (_) {\n _fs = require('fs')\n}\n\nfunction readFile (file, options, callback) {\n if (callback == null) {\n callback = options\n options = {}\n }\n\n if (typeof options === 'string') {\n options = {encoding: options}\n }\n\n options = options || {}\n var fs = options.fs || _fs\n\n var shouldThrow = true\n // DO NOT USE 'passParsingErrors' THE NAME WILL CHANGE!!!, use 'throws' instead\n if ('passParsingErrors' in options) {\n shouldThrow = options.passParsingErrors\n } else if ('throws' in options) {\n shouldThrow = options.throws\n }\n\n fs.readFile(file, options, function (err, data) {\n if (err) return callback(err)\n\n data = stripBom(data)\n\n var obj\n try {\n obj = JSON.parse(data, options ? options.reviver : null)\n } catch (err2) {\n if (shouldThrow) {\n err2.message = file + ': ' + err2.message\n return callback(err2)\n } else {\n return callback(null, null)\n }\n }\n\n callback(null, obj)\n })\n}\n\nfunction readFileSync (file, options) {\n options = options || {}\n if (typeof options === 'string') {\n options = {encoding: options}\n }\n\n var fs = options.fs || _fs\n\n var shouldThrow = true\n // DO NOT USE 'passParsingErrors' THE NAME WILL CHANGE!!!, use 'throws' instead\n if ('passParsingErrors' in options) {\n shouldThrow = options.passParsingErrors\n } else if ('throws' in options) {\n shouldThrow = options.throws\n }\n\n var content = fs.readFileSync(file, options)\n content = stripBom(content)\n\n try {\n return JSON.parse(content, options.reviver)\n } catch (err) {\n if (shouldThrow) {\n err.message = file + ': ' + err.message\n throw err\n } else {\n return null\n }\n }\n}\n\nfunction writeFile (file, obj, options, callback) {\n if (callback == null) {\n callback = options\n options = {}\n }\n options = options || {}\n var fs = options.fs || _fs\n\n var spaces = typeof options === 'object' && options !== null\n ? 'spaces' in options\n ? options.spaces : this.spaces\n : this.spaces\n\n var str = ''\n try {\n str = JSON.stringify(obj, options ? options.replacer : null, spaces) + '\\n'\n } catch (err) {\n if (callback) return callback(err, null)\n }\n\n fs.writeFile(file, str, options, callback)\n}\n\nfunction writeFileSync (file, obj, options) {\n options = options || {}\n var fs = options.fs || _fs\n\n var spaces = typeof options === 'object' && options !== null\n ? 'spaces' in options\n ? options.spaces : this.spaces\n : this.spaces\n\n var str = JSON.stringify(obj, options.replacer, spaces) + '\\n'\n // not sure if fs.writeFileSync returns anything, but just in case\n return fs.writeFileSync(file, str, options)\n}\n\nfunction stripBom (content) {\n // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified\n if (Buffer.isBuffer(content)) content = content.toString('utf8')\n content = content.replace(/^\\uFEFF/, '')\n return content\n}\n\nvar jsonfile = {\n spaces: null,\n readFile: readFile,\n readFileSync: readFileSync,\n writeFile: writeFile,\n writeFileSync: writeFileSync\n}\n\nmodule.exports = jsonfile\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/jsonfile/index.js\n// module id = 37\n// module chunks = 0","var fs = require('fs')\nvar polyfills = require('./polyfills.js')\nvar legacy = require('./legacy-streams.js')\nvar queue = []\n\nvar util = require('util')\n\nfunction noop () {}\n\nvar debug = noop\nif (util.debuglog)\n debug = util.debuglog('gfs4')\nelse if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || ''))\n debug = function() {\n var m = util.format.apply(util, arguments)\n m = 'GFS4: ' + m.split(/\\n/).join('\\nGFS4: ')\n console.error(m)\n }\n\nif (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || '')) {\n process.on('exit', function() {\n debug(queue)\n require('assert').equal(queue.length, 0)\n })\n}\n\nmodule.exports = patch(require('./fs.js'))\nif (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH) {\n module.exports = patch(fs)\n}\n\n// Always patch fs.close/closeSync, because we want to\n// retry() whenever a close happens *anywhere* in the program.\n// This is essential when multiple graceful-fs instances are\n// in play at the same time.\nmodule.exports.close =\nfs.close = (function (fs$close) { return function (fd, cb) {\n return fs$close.call(fs, fd, function (err) {\n if (!err)\n retry()\n\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n })\n}})(fs.close)\n\nmodule.exports.closeSync =\nfs.closeSync = (function (fs$closeSync) { return function (fd) {\n // Note that graceful-fs also retries when fs.closeSync() fails.\n // Looks like a bug to me, although it's probably a harmless one.\n var rval = fs$closeSync.apply(fs, arguments)\n retry()\n return rval\n}})(fs.closeSync)\n\nfunction patch (fs) {\n // Everything that references the open() function needs to be in here\n polyfills(fs)\n fs.gracefulify = patch\n fs.FileReadStream = ReadStream; // Legacy name.\n fs.FileWriteStream = WriteStream; // Legacy name.\n fs.createReadStream = createReadStream\n fs.createWriteStream = createWriteStream\n var fs$readFile = fs.readFile\n fs.readFile = readFile\n function readFile (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$readFile(path, options, cb)\n\n function go$readFile (path, options, cb) {\n return fs$readFile(path, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readFile, [path, options, cb]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n })\n }\n }\n\n var fs$writeFile = fs.writeFile\n fs.writeFile = writeFile\n function writeFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$writeFile(path, data, options, cb)\n\n function go$writeFile (path, data, options, cb) {\n return fs$writeFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$writeFile, [path, data, options, cb]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n })\n }\n }\n\n var fs$appendFile = fs.appendFile\n if (fs$appendFile)\n fs.appendFile = appendFile\n function appendFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$appendFile(path, data, options, cb)\n\n function go$appendFile (path, data, options, cb) {\n return fs$appendFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$appendFile, [path, data, options, cb]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n })\n }\n }\n\n var fs$readdir = fs.readdir\n fs.readdir = readdir\n function readdir (path, options, cb) {\n var args = [path]\n if (typeof options !== 'function') {\n args.push(options)\n } else {\n cb = options\n }\n args.push(go$readdir$cb)\n\n return go$readdir(args)\n\n function go$readdir$cb (err, files) {\n if (files && files.sort)\n files.sort()\n\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readdir, [args]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n }\n }\n\n function go$readdir (args) {\n return fs$readdir.apply(fs, args)\n }\n\n if (process.version.substr(0, 4) === 'v0.8') {\n var legStreams = legacy(fs)\n ReadStream = legStreams.ReadStream\n WriteStream = legStreams.WriteStream\n }\n\n var fs$ReadStream = fs.ReadStream\n ReadStream.prototype = Object.create(fs$ReadStream.prototype)\n ReadStream.prototype.open = ReadStream$open\n\n var fs$WriteStream = fs.WriteStream\n WriteStream.prototype = Object.create(fs$WriteStream.prototype)\n WriteStream.prototype.open = WriteStream$open\n\n fs.ReadStream = ReadStream\n fs.WriteStream = WriteStream\n\n function ReadStream (path, options) {\n if (this instanceof ReadStream)\n return fs$ReadStream.apply(this, arguments), this\n else\n return ReadStream.apply(Object.create(ReadStream.prototype), arguments)\n }\n\n function ReadStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n if (that.autoClose)\n that.destroy()\n\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n that.read()\n }\n })\n }\n\n function WriteStream (path, options) {\n if (this instanceof WriteStream)\n return fs$WriteStream.apply(this, arguments), this\n else\n return WriteStream.apply(Object.create(WriteStream.prototype), arguments)\n }\n\n function WriteStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n that.destroy()\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n }\n })\n }\n\n function createReadStream (path, options) {\n return new ReadStream(path, options)\n }\n\n function createWriteStream (path, options) {\n return new WriteStream(path, options)\n }\n\n var fs$open = fs.open\n fs.open = open\n function open (path, flags, mode, cb) {\n if (typeof mode === 'function')\n cb = mode, mode = null\n\n return go$open(path, flags, mode, cb)\n\n function go$open (path, flags, mode, cb) {\n return fs$open(path, flags, mode, function (err, fd) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$open, [path, flags, mode, cb]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n })\n }\n }\n\n return fs\n}\n\nfunction enqueue (elem) {\n debug('ENQUEUE', elem[0].name, elem[1])\n queue.push(elem)\n}\n\nfunction retry () {\n var elem = queue.shift()\n if (elem) {\n debug('RETRY', elem[0].name, elem[1])\n elem[0].apply(null, elem[1])\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/graceful-fs/graceful-fs.js\n// module id = 38\n// module chunks = 0","var fs = require('./fs.js')\nvar constants = require('constants')\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n if (!cwd)\n cwd = origCwd.call(process)\n return cwd\n}\ntry {\n process.cwd()\n} catch (er) {}\n\nvar chdir = process.chdir\nprocess.chdir = function(d) {\n cwd = null\n chdir.call(process, d)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n // (re-)implement some things that are known busted or missing.\n\n // lchmod, broken prior to 0.6.2\n // back-port the fix here.\n if (constants.hasOwnProperty('O_SYMLINK') &&\n process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n patchLchmod(fs)\n }\n\n // lutimes implementation, or no-op\n if (!fs.lutimes) {\n patchLutimes(fs)\n }\n\n // https://github.com/isaacs/node-graceful-fs/issues/4\n // Chown should not fail on einval or eperm if non-root.\n // It should not fail on enosys ever, as this just indicates\n // that a fs doesn't support the intended operation.\n\n fs.chown = chownFix(fs.chown)\n fs.fchown = chownFix(fs.fchown)\n fs.lchown = chownFix(fs.lchown)\n\n fs.chmod = chmodFix(fs.chmod)\n fs.fchmod = chmodFix(fs.fchmod)\n fs.lchmod = chmodFix(fs.lchmod)\n\n fs.chownSync = chownFixSync(fs.chownSync)\n fs.fchownSync = chownFixSync(fs.fchownSync)\n fs.lchownSync = chownFixSync(fs.lchownSync)\n\n fs.chmodSync = chmodFixSync(fs.chmodSync)\n fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n fs.stat = statFix(fs.stat)\n fs.fstat = statFix(fs.fstat)\n fs.lstat = statFix(fs.lstat)\n\n fs.statSync = statFixSync(fs.statSync)\n fs.fstatSync = statFixSync(fs.fstatSync)\n fs.lstatSync = statFixSync(fs.lstatSync)\n\n // if lchmod/lchown do not exist, then make them no-ops\n if (!fs.lchmod) {\n fs.lchmod = function (path, mode, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchmodSync = function () {}\n }\n if (!fs.lchown) {\n fs.lchown = function (path, uid, gid, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchownSync = function () {}\n }\n\n // on Windows, A/V software can lock the directory, causing this\n // to fail with an EACCES or EPERM if the directory contains newly\n // created files. Try again on failure, for up to 60 seconds.\n\n // Set the timeout this long because some Windows Anti-Virus, such as Parity\n // bit9, may lock files for up to a minute, causing npm package install\n // failures. Also, take care to yield the scheduler. Windows scheduling gives\n // CPU to a busy looping process, which can cause the program causing the lock\n // contention to be starved of CPU by node, so the contention doesn't resolve.\n if (platform === \"win32\") {\n fs.rename = (function (fs$rename) { return function (from, to, cb) {\n var start = Date.now()\n var backoff = 0;\n fs$rename(from, to, function CB (er) {\n if (er\n && (er.code === \"EACCES\" || er.code === \"EPERM\")\n && Date.now() - start < 60000) {\n setTimeout(function() {\n fs.stat(to, function (stater, st) {\n if (stater && stater.code === \"ENOENT\")\n fs$rename(from, to, CB);\n else\n cb(er)\n })\n }, backoff)\n if (backoff < 100)\n backoff += 10;\n return;\n }\n if (cb) cb(er)\n })\n }})(fs.rename)\n }\n\n // if read() returns EAGAIN, then just try it again.\n fs.read = (function (fs$read) { return function (fd, buffer, offset, length, position, callback_) {\n var callback\n if (callback_ && typeof callback_ === 'function') {\n var eagCounter = 0\n callback = function (er, _, __) {\n if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n callback_.apply(this, arguments)\n }\n }\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }})(fs.read)\n\n fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n var eagCounter = 0\n while (true) {\n try {\n return fs$readSync.call(fs, fd, buffer, offset, length, position)\n } catch (er) {\n if (er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n continue\n }\n throw er\n }\n }\n }})(fs.readSync)\n}\n\nfunction patchLchmod (fs) {\n fs.lchmod = function (path, mode, callback) {\n fs.open( path\n , constants.O_WRONLY | constants.O_SYMLINK\n , mode\n , function (err, fd) {\n if (err) {\n if (callback) callback(err)\n return\n }\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n fs.fchmod(fd, mode, function (err) {\n fs.close(fd, function(err2) {\n if (callback) callback(err || err2)\n })\n })\n })\n }\n\n fs.lchmodSync = function (path, mode) {\n var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n var threw = true\n var ret\n try {\n ret = fs.fchmodSync(fd, mode)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n}\n\nfunction patchLutimes (fs) {\n if (constants.hasOwnProperty(\"O_SYMLINK\")) {\n fs.lutimes = function (path, at, mt, cb) {\n fs.open(path, constants.O_SYMLINK, function (er, fd) {\n if (er) {\n if (cb) cb(er)\n return\n }\n fs.futimes(fd, at, mt, function (er) {\n fs.close(fd, function (er2) {\n if (cb) cb(er || er2)\n })\n })\n })\n }\n\n fs.lutimesSync = function (path, at, mt) {\n var fd = fs.openSync(path, constants.O_SYMLINK)\n var ret\n var threw = true\n try {\n ret = fs.futimesSync(fd, at, mt)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n\n } else {\n fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n fs.lutimesSync = function () {}\n }\n}\n\nfunction chmodFix (orig) {\n if (!orig) return orig\n return function (target, mode, cb) {\n return orig.call(fs, target, mode, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n}\n\nfunction chmodFixSync (orig) {\n if (!orig) return orig\n return function (target, mode) {\n try {\n return orig.call(fs, target, mode)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n}\n\n\nfunction chownFix (orig) {\n if (!orig) return orig\n return function (target, uid, gid, cb) {\n return orig.call(fs, target, uid, gid, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n}\n\nfunction chownFixSync (orig) {\n if (!orig) return orig\n return function (target, uid, gid) {\n try {\n return orig.call(fs, target, uid, gid)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n}\n\n\nfunction statFix (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, cb) {\n return orig.call(fs, target, function (er, stats) {\n if (!stats) return cb.apply(this, arguments)\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n if (cb) cb.apply(this, arguments)\n })\n }\n}\n\nfunction statFixSync (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target) {\n var stats = orig.call(fs, target)\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n return stats;\n }\n}\n\n// ENOSYS means that the fs doesn't support the op. Just ignore\n// that, because it doesn't matter.\n//\n// if there's no getuid, or if getuid() is something other\n// than 0, and the error is EINVAL or EPERM, then just ignore\n// it.\n//\n// This specific case is a silent failure in cp, install, tar,\n// and most other unix tools that manage permissions.\n//\n// When running as root, or if other types of errors are\n// encountered, then it's strict.\nfunction chownErOk (er) {\n if (!er)\n return true\n\n if (er.code === \"ENOSYS\")\n return true\n\n var nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n return true\n }\n\n return false\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/graceful-fs/polyfills.js\n// module id = 39\n// module chunks = 0","module.exports = require(\"constants\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"constants\"\n// module id = 40\n// module chunks = 0","var Stream = require('stream').Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n return {\n ReadStream: ReadStream,\n WriteStream: WriteStream\n }\n\n function ReadStream (path, options) {\n if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n Stream.call(this);\n\n var self = this;\n\n this.path = path;\n this.fd = null;\n this.readable = true;\n this.paused = false;\n\n this.flags = 'r';\n this.mode = 438; /*=0666*/\n this.bufferSize = 64 * 1024;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.encoding) this.setEncoding(this.encoding);\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n } else if ('number' !== typeof this.end) {\n throw TypeError('end must be a Number');\n }\n\n if (this.start > this.end) {\n throw new Error('start must be <= end');\n }\n\n this.pos = this.start;\n }\n\n if (this.fd !== null) {\n process.nextTick(function() {\n self._read();\n });\n return;\n }\n\n fs.open(this.path, this.flags, this.mode, function (err, fd) {\n if (err) {\n self.emit('error', err);\n self.readable = false;\n return;\n }\n\n self.fd = fd;\n self.emit('open', fd);\n self._read();\n })\n }\n\n function WriteStream (path, options) {\n if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n Stream.call(this);\n\n this.path = path;\n this.fd = null;\n this.writable = true;\n\n this.flags = 'w';\n this.encoding = 'binary';\n this.mode = 438; /*=0666*/\n this.bytesWritten = 0;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.start < 0) {\n throw new Error('start must be >= zero');\n }\n\n this.pos = this.start;\n }\n\n this.busy = false;\n this._queue = [];\n\n if (this.fd === null) {\n this._open = fs.open;\n this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n this.flush();\n }\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/graceful-fs/legacy-streams.js\n// module id = 41\n// module chunks = 0","module.exports = require(\"stream\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"stream\"\n// module id = 42\n// module chunks = 0","module.exports = require(\"util\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"util\"\n// module id = 43\n// module chunks = 0","module.exports = require(\"assert\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"assert\"\n// module id = 44\n// module chunks = 0","var path = require('path');\nvar fs = require('fs');\nvar _0777 = parseInt('0777', 8);\n\nmodule.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;\n\nfunction mkdirP (p, opts, f, made) {\n if (typeof opts === 'function') {\n f = opts;\n opts = {};\n }\n else if (!opts || typeof opts !== 'object') {\n opts = { mode: opts };\n }\n \n var mode = opts.mode;\n var xfs = opts.fs || fs;\n \n if (mode === undefined) {\n mode = _0777 & (~process.umask());\n }\n if (!made) made = null;\n \n var cb = f || function () {};\n p = path.resolve(p);\n \n xfs.mkdir(p, mode, function (er) {\n if (!er) {\n made = made || p;\n return cb(null, made);\n }\n switch (er.code) {\n case 'ENOENT':\n mkdirP(path.dirname(p), opts, function (er, made) {\n if (er) cb(er, made);\n else mkdirP(p, opts, cb, made);\n });\n break;\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n xfs.stat(p, function (er2, stat) {\n // if the stat fails, then that's super weird.\n // let the original error be the failure reason.\n if (er2 || !stat.isDirectory()) cb(er, made)\n else cb(null, made);\n });\n break;\n }\n });\n}\n\nmkdirP.sync = function sync (p, opts, made) {\n if (!opts || typeof opts !== 'object') {\n opts = { mode: opts };\n }\n \n var mode = opts.mode;\n var xfs = opts.fs || fs;\n \n if (mode === undefined) {\n mode = _0777 & (~process.umask());\n }\n if (!made) made = null;\n\n p = path.resolve(p);\n\n try {\n xfs.mkdirSync(p, mode);\n made = made || p;\n }\n catch (err0) {\n switch (err0.code) {\n case 'ENOENT' :\n made = sync(path.dirname(p), opts, made);\n sync(p, opts, made);\n break;\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n var stat;\n try {\n stat = xfs.statSync(p);\n }\n catch (err1) {\n throw err0;\n }\n if (!stat.isDirectory()) throw err0;\n break;\n }\n }\n\n return made;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/mkdirp/index.js\n// module id = 45\n// module chunks = 0","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/deep-equal/index.js\n// module id = 46\n// module chunks = 0","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/deep-equal/lib/keys.js\n// module id = 47\n// module chunks = 0","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/deep-equal/lib/is_arguments.js\n// module id = 48\n// module chunks = 0","import helpers from './../../helpers/helpers';\n\nconst { linkIsInternal } = helpers;\n\nfunction onNewWindowHelper(\n urlToGo,\n disposition,\n targetUrl,\n internalUrls,\n preventDefault,\n openExternal,\n createAboutBlankWindow,\n nativeTabsSupported,\n createNewTab,\n) {\n if (!linkIsInternal(targetUrl, urlToGo, internalUrls)) {\n openExternal(urlToGo);\n preventDefault();\n } else if (urlToGo === 'about:blank') {\n const newWindow = createAboutBlankWindow();\n preventDefault(newWindow);\n } else if (nativeTabsSupported()) {\n if (disposition === 'background-tab') {\n const newTab = createNewTab(urlToGo, false);\n preventDefault(newTab);\n } else if (disposition === 'foreground-tab') {\n const newTab = createNewTab(urlToGo, true);\n preventDefault(newTab);\n }\n }\n}\n\nexport default { onNewWindowHelper };\n\n\n\n// WEBPACK FOOTER //\n// ./app/src/components/mainWindow/mainWindowHelpers.js","module.exports = function (arg, url) {\r\n\r\n function _t() {\r\n return new RegExp(/(.*?)\\.?([^\\.]*?)\\.(gl|com|net|org|biz|ws|in|me|co\\.uk|co|org\\.uk|ltd\\.uk|plc\\.uk|me\\.uk|edu|mil|br\\.com|cn\\.com|eu\\.com|hu\\.com|no\\.com|qc\\.com|sa\\.com|se\\.com|se\\.net|us\\.com|uy\\.com|ac|co\\.ac|gv\\.ac|or\\.ac|ac\\.ac|af|am|as|at|ac\\.at|co\\.at|gv\\.at|or\\.at|asn\\.au|com\\.au|edu\\.au|org\\.au|net\\.au|id\\.au|be|ac\\.be|adm\\.br|adv\\.br|am\\.br|arq\\.br|art\\.br|bio\\.br|cng\\.br|cnt\\.br|com\\.br|ecn\\.br|eng\\.br|esp\\.br|etc\\.br|eti\\.br|fm\\.br|fot\\.br|fst\\.br|g12\\.br|gov\\.br|ind\\.br|inf\\.br|jor\\.br|lel\\.br|med\\.br|mil\\.br|net\\.br|nom\\.br|ntr\\.br|odo\\.br|org\\.br|ppg\\.br|pro\\.br|psc\\.br|psi\\.br|rec\\.br|slg\\.br|tmp\\.br|tur\\.br|tv\\.br|vet\\.br|zlg\\.br|br|ab\\.ca|bc\\.ca|mb\\.ca|nb\\.ca|nf\\.ca|ns\\.ca|nt\\.ca|on\\.ca|pe\\.ca|qc\\.ca|sk\\.ca|yk\\.ca|ca|cc|ac\\.cn|com\\.cn|edu\\.cn|gov\\.cn|org\\.cn|bj\\.cn|sh\\.cn|tj\\.cn|cq\\.cn|he\\.cn|nm\\.cn|ln\\.cn|jl\\.cn|hl\\.cn|js\\.cn|zj\\.cn|ah\\.cn|gd\\.cn|gx\\.cn|hi\\.cn|sc\\.cn|gz\\.cn|yn\\.cn|xz\\.cn|sn\\.cn|gs\\.cn|qh\\.cn|nx\\.cn|xj\\.cn|tw\\.cn|hk\\.cn|mo\\.cn|cn|cx|cz|de|dk|fo|com\\.ec|tm\\.fr|com\\.fr|asso\\.fr|presse\\.fr|fr|gf|gs|co\\.il|net\\.il|ac\\.il|k12\\.il|gov\\.il|muni\\.il|ac\\.in|co\\.in|org\\.in|ernet\\.in|gov\\.in|net\\.in|res\\.in|is|it|ac\\.jp|co\\.jp|go\\.jp|or\\.jp|ne\\.jp|ac\\.kr|co\\.kr|go\\.kr|ne\\.kr|nm\\.kr|or\\.kr|li|lt|lu|asso\\.mc|tm\\.mc|com\\.mm|org\\.mm|net\\.mm|edu\\.mm|gov\\.mm|ms|nl|no|nu|pl|ro|org\\.ro|store\\.ro|tm\\.ro|firm\\.ro|www\\.ro|arts\\.ro|rec\\.ro|info\\.ro|nom\\.ro|nt\\.ro|se|si|com\\.sg|org\\.sg|net\\.sg|gov\\.sg|sk|st|tf|ac\\.th|co\\.th|go\\.th|mi\\.th|net\\.th|or\\.th|tm|to|com\\.tr|edu\\.tr|gov\\.tr|k12\\.tr|net\\.tr|org\\.tr|com\\.tw|org\\.tw|net\\.tw|ac\\.uk|uk\\.com|uk\\.net|gb\\.com|gb\\.net|vg|sh|kz|ch|info|ua|gov|name|pro|ie|hk|com\\.hk|org\\.hk|net\\.hk|edu\\.hk|us|tk|cd|by|ad|lv|eu\\.lv|bz|es|jp|cl|ag|mobi|eu|co\\.nz|org\\.nz|net\\.nz|maori\\.nz|iwi\\.nz|io|la|md|sc|sg|vc|tw|travel|my|se|tv|pt|com\\.pt|edu\\.pt|asia|fi|com\\.ve|net\\.ve|fi|org\\.ve|web\\.ve|info\\.ve|co\\.ve|tel|im|gr|ru|net\\.ru|org\\.ru|hr|com\\.hr|ly|xyz)$/);\r\n }\r\n\r\n function _d(s) {\r\n return decodeURIComponent(s.replace(/\\+/g, ' '));\r\n }\r\n\r\n function _i(arg, str) {\r\n var sptr = arg.charAt(0),\r\n split = str.split(sptr);\r\n\r\n if (sptr === arg) { return split; }\r\n\r\n arg = parseInt(arg.substring(1), 10);\r\n\r\n return split[arg < 0 ? split.length + arg : arg - 1];\r\n }\r\n\r\n function _f(arg, str) {\r\n var sptr = arg.charAt(0),\r\n split = str.split('&'),\r\n field = [],\r\n params = {},\r\n tmp = [],\r\n arg2 = arg.substring(1);\r\n\r\n for (var i = 0, ii = split.length; i < ii; i++) {\r\n field = split[i].match(/(.*?)=(.*)/);\r\n\r\n // TODO: regex should be able to handle this.\r\n if ( ! field) {\r\n field = [split[i], split[i], ''];\r\n }\r\n\r\n if (field[1].replace(/\\s/g, '') !== '') {\r\n field[2] = _d(field[2] || '');\r\n\r\n // If we have a match just return it right away.\r\n if (arg2 === field[1]) { return field[2]; }\r\n\r\n // Check for array pattern.\r\n tmp = field[1].match(/(.*)\\[([0-9]+)\\]/);\r\n\r\n if (tmp) {\r\n params[tmp[1]] = params[tmp[1]] || [];\r\n \r\n params[tmp[1]][tmp[2]] = field[2];\r\n }\r\n else {\r\n params[field[1]] = field[2];\r\n }\r\n }\r\n }\r\n\r\n if (sptr === arg) { return params; }\r\n\r\n return params[arg2];\r\n }\r\n\r\n var _l = {}, tmp, tmp2;\r\n\r\n if (arg === 'tld?') { return _t(); }\r\n\r\n url = url || window.location.toString();\r\n\r\n if ( ! arg) { return url; }\r\n\r\n arg = arg.toString();\r\n\r\n if (tmp = url.match(/^mailto:([^\\/].+)/)) {\r\n _l.protocol = 'mailto';\r\n _l.email = tmp[1];\r\n }\r\n else {\r\n\r\n // Ignore Hashbangs.\r\n if (tmp = url.match(/(.*?)\\/#\\!(.*)/)) {\r\n url = tmp[1] + tmp[2];\r\n }\r\n\r\n // Hash.\r\n if (tmp = url.match(/(.*?)#(.*)/)) {\r\n _l.hash = tmp[2];\r\n url = tmp[1];\r\n }\r\n\r\n // Return hash parts.\r\n if (_l.hash && arg.match(/^#/)) { return _f(arg, _l.hash); }\r\n\r\n // Query\r\n if (tmp = url.match(/(.*?)\\?(.*)/)) {\r\n _l.query = tmp[2];\r\n url = tmp[1];\r\n }\r\n\r\n // Return query parts.\r\n if (_l.query && arg.match(/^\\?/)) { return _f(arg, _l.query); }\r\n\r\n // Protocol.\r\n if (tmp = url.match(/(.*?)\\:?\\/\\/(.*)/)) {\r\n _l.protocol = tmp[1].toLowerCase();\r\n url = tmp[2];\r\n }\r\n\r\n // Path.\r\n if (tmp = url.match(/(.*?)(\\/.*)/)) {\r\n _l.path = tmp[2];\r\n url = tmp[1];\r\n }\r\n\r\n // Clean up path.\r\n _l.path = (_l.path || '').replace(/^([^\\/])/, '/$1');\r\n\r\n // Return path parts.\r\n if (arg.match(/^[\\-0-9]+$/)) { arg = arg.replace(/^([^\\/])/, '/$1'); }\r\n if (arg.match(/^\\//)) { return _i(arg, _l.path.substring(1)); }\r\n\r\n // File.\r\n tmp = _i('/-1', _l.path.substring(1));\r\n \r\n if (tmp && (tmp = tmp.match(/(.*?)\\.([^.]+)$/))) {\r\n _l.file = tmp[0];\r\n _l.filename = tmp[1];\r\n _l.fileext = tmp[2];\r\n }\r\n\r\n // Port.\r\n if (tmp = url.match(/(.*)\\:([0-9]+)$/)) {\r\n _l.port = tmp[2];\r\n url = tmp[1];\r\n }\r\n\r\n // Auth.\r\n if (tmp = url.match(/(.*?)@(.*)/)) {\r\n _l.auth = tmp[1];\r\n url = tmp[2];\r\n }\r\n\r\n // User and pass.\r\n if (_l.auth) {\r\n tmp = _l.auth.match(/(.*)\\:(.*)/);\r\n\r\n _l.user = tmp ? tmp[1] : _l.auth;\r\n _l.pass = tmp ? tmp[2] : undefined;\r\n }\r\n\r\n // Hostname.\r\n _l.hostname = url.toLowerCase();\r\n\r\n // Return hostname parts.\r\n if (arg.charAt(0) === '.') { return _i(arg, _l.hostname); }\r\n\r\n // Domain, tld and sub domain.\r\n if (_t()) {\r\n tmp = _l.hostname.match(_t());\r\n\r\n if (tmp) {\r\n _l.tld = tmp[3];\r\n _l.domain = tmp[2] ? tmp[2] + '.' + tmp[3] : undefined;\r\n _l.sub = tmp[1] || undefined;\r\n }\r\n }\r\n\r\n // Set port and protocol defaults if not set.\r\n _l.port = _l.port || (_l.protocol === 'https' ? '443' : '80');\r\n _l.protocol = _l.protocol || (_l.port === '443' ? 'https' : 'http');\r\n }\r\n\r\n // Return arg.\r\n if (arg in _l) { return _l[arg]; }\r\n\r\n // Return everything.\r\n if (arg === '{}') { return _l; }\r\n\r\n // Default to undefined for no match.\r\n return undefined;\r\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/wurl/wurl.js\n// module id = 50\n// module chunks = 0","module.exports = require(\"os\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"os\"\n// module id = 51\n// module chunks = 0","import { Menu, shell, clipboard } from 'electron';\n\n/**\n * @param nativefierVersion\n * @param appQuit\n * @param zoomIn\n * @param zoomOut\n * @param zoomReset\n * @param zoomBuildTimeValue\n * @param goBack\n * @param goForward\n * @param getCurrentUrl\n * @param clearAppData\n * @param disableDevTools\n */\nfunction createMenu({\n nativefierVersion,\n appQuit,\n zoomIn,\n zoomOut,\n zoomReset,\n zoomBuildTimeValue,\n goBack,\n goForward,\n getCurrentUrl,\n clearAppData,\n disableDevTools,\n}) {\n if (Menu.getApplicationMenu()) {\n return;\n }\n const zoomResetLabel =\n zoomBuildTimeValue === 1.0\n ? 'Reset Zoom'\n : `Reset Zoom (to ${zoomBuildTimeValue * 100}%, set at build time)`;\n\n const template = [\n {\n label: 'Edit',\n submenu: [\n {\n label: 'Undo',\n accelerator: 'CmdOrCtrl+Z',\n role: 'undo',\n },\n {\n label: 'Redo',\n accelerator: 'Shift+CmdOrCtrl+Z',\n role: 'redo',\n },\n {\n type: 'separator',\n },\n {\n label: 'Cut',\n accelerator: 'CmdOrCtrl+X',\n role: 'cut',\n },\n {\n label: 'Copy',\n accelerator: 'CmdOrCtrl+C',\n role: 'copy',\n },\n {\n label: 'Copy Current URL',\n accelerator: 'CmdOrCtrl+L',\n click: () => {\n const currentURL = getCurrentUrl();\n clipboard.writeText(currentURL);\n },\n },\n {\n label: 'Paste',\n accelerator: 'CmdOrCtrl+V',\n role: 'paste',\n },\n {\n label: 'Paste and Match Style',\n accelerator: 'CmdOrCtrl+Shift+V',\n role: 'pasteandmatchstyle',\n },\n {\n label: 'Select All',\n accelerator: 'CmdOrCtrl+A',\n role: 'selectall',\n },\n {\n label: 'Clear App Data',\n click: () => {\n clearAppData();\n },\n },\n ],\n },\n {\n label: 'View',\n submenu: [\n {\n label: 'Back',\n accelerator: 'CmdOrCtrl+[',\n click: () => {\n goBack();\n },\n },\n {\n label: 'Forward',\n accelerator: 'CmdOrCtrl+]',\n click: () => {\n goForward();\n },\n },\n {\n label: 'Reload',\n accelerator: 'CmdOrCtrl+R',\n click: (item, focusedWindow) => {\n if (focusedWindow) {\n focusedWindow.reload();\n }\n },\n },\n {\n type: 'separator',\n },\n {\n label: 'Toggle Full Screen',\n accelerator: (() => {\n if (process.platform === 'darwin') {\n return 'Ctrl+Command+F';\n }\n return 'F11';\n })(),\n click: (item, focusedWindow) => {\n if (focusedWindow) {\n focusedWindow.setFullScreen(!focusedWindow.isFullScreen());\n }\n },\n },\n {\n label: 'Zoom In',\n accelerator: (() => {\n if (process.platform === 'darwin') {\n return 'Command+=';\n }\n return 'Ctrl+=';\n })(),\n click: () => {\n zoomIn();\n },\n },\n {\n label: 'Zoom Out',\n accelerator: (() => {\n if (process.platform === 'darwin') {\n return 'Command+-';\n }\n return 'Ctrl+-';\n })(),\n click: () => {\n zoomOut();\n },\n },\n {\n label: zoomResetLabel,\n accelerator: (() => {\n if (process.platform === 'darwin') {\n return 'Command+0';\n }\n return 'Ctrl+0';\n })(),\n click: () => {\n zoomReset();\n },\n },\n {\n label: 'Toggle Developer Tools',\n accelerator: (() => {\n if (process.platform === 'darwin') {\n return 'Alt+Command+I';\n }\n return 'Ctrl+Shift+I';\n })(),\n click: (item, focusedWindow) => {\n if (focusedWindow) {\n focusedWindow.toggleDevTools();\n }\n },\n },\n ],\n },\n {\n label: 'Window',\n role: 'window',\n submenu: [\n {\n label: 'Minimize',\n accelerator: 'CmdOrCtrl+M',\n role: 'minimize',\n },\n {\n label: 'Close',\n accelerator: 'CmdOrCtrl+W',\n role: 'close',\n },\n ],\n },\n {\n label: 'Help',\n role: 'help',\n submenu: [\n {\n label: `Built with Nativefier v${nativefierVersion}`,\n click: () => {\n shell.openExternal('https://github.com/jiahaog/nativefier');\n },\n },\n {\n label: 'Report an Issue',\n click: () => {\n shell.openExternal('https://github.com/jiahaog/nativefier/issues');\n },\n },\n ],\n },\n ];\n\n if (disableDevTools) {\n // remove last item (dev tools) from menu > view\n const { submenu } = template[1];\n submenu.splice(submenu.length - 1, 1);\n }\n\n if (process.platform === 'darwin') {\n template.unshift({\n label: 'Electron',\n submenu: [\n {\n label: 'Services',\n role: 'services',\n submenu: [],\n },\n {\n type: 'separator',\n },\n {\n label: 'Hide App',\n accelerator: 'Command+H',\n role: 'hide',\n },\n {\n label: 'Hide Others',\n accelerator: 'Command+Shift+H',\n role: 'hideothers',\n },\n {\n label: 'Show All',\n role: 'unhide',\n },\n {\n type: 'separator',\n },\n {\n label: 'Quit',\n accelerator: 'Command+Q',\n click: () => {\n appQuit();\n },\n },\n ],\n });\n template[3].submenu.push(\n {\n type: 'separator',\n },\n {\n label: 'Bring All to Front',\n role: 'front',\n },\n );\n }\n\n const menu = Menu.buildFromTemplate(template);\n Menu.setApplicationMenu(menu);\n}\n\nexport default createMenu;\n\n\n\n// WEBPACK FOOTER //\n// ./app/src/components/menu/menu.js","import { shell } from 'electron';\nimport contextMenu from 'electron-context-menu';\n\nfunction initContextMenu(createNewWindow, createNewTab) {\n contextMenu({\n prepend: (params) => {\n const items = [];\n if (params.linkURL) {\n items.push({\n label: 'Open Link in Default Browser',\n click: () => {\n shell.openExternal(params.linkURL);\n },\n });\n items.push({\n label: 'Open Link in New Window',\n click: () => {\n createNewWindow(params.linkURL);\n },\n });\n if (createNewTab) {\n items.push({\n label: 'Open Link in New Tab',\n click: () => {\n createNewTab(params.linkURL, false);\n },\n });\n }\n }\n return items;\n },\n });\n}\n\nexport default initContextMenu;\n\n\n\n// WEBPACK FOOTER //\n// ./app/src/components/contextMenu/contextMenu.js","'use strict';\nconst electron = require('electron');\nconst {download} = require('electron-dl');\nconst isDev = require('electron-is-dev');\n\nconst webContents = win => win.webContents || win.getWebContents();\n\nfunction create(win, opts) {\n\twebContents(win).on('context-menu', (e, props) => {\n\t\tif (typeof opts.shouldShowMenu === 'function' && opts.shouldShowMenu(e, props) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editFlags = props.editFlags;\n\t\tconst hasText = props.selectionText.trim().length > 0;\n\t\tconst can = type => editFlags[`can${type}`] && hasText;\n\n\t\tlet menuTpl = [{\n\t\t\ttype: 'separator'\n\t\t}, {\n\t\t\tid: 'cut',\n\t\t\tlabel: 'Cut',\n\t\t\t// Needed because of macOS limitation:\n\t\t\t// https://github.com/electron/electron/issues/5860\n\t\t\trole: can('Cut') ? 'cut' : '',\n\t\t\tenabled: can('Cut'),\n\t\t\tvisible: props.isEditable\n\t\t}, {\n\t\t\tid: 'copy',\n\t\t\tlabel: 'Copy',\n\t\t\trole: can('Copy') ? 'copy' : '',\n\t\t\tenabled: can('Copy'),\n\t\t\tvisible: props.isEditable || hasText\n\t\t}, {\n\t\t\tid: 'paste',\n\t\t\tlabel: 'Paste',\n\t\t\trole: editFlags.canPaste ? 'paste' : '',\n\t\t\tenabled: editFlags.canPaste,\n\t\t\tvisible: props.isEditable\n\t\t}, {\n\t\t\ttype: 'separator'\n\t\t}];\n\n\t\tif (props.mediaType === 'image') {\n\t\t\tmenuTpl = [{\n\t\t\t\ttype: 'separator'\n\t\t\t}, {\n\t\t\t\tid: 'save',\n\t\t\t\tlabel: 'Save Image',\n\t\t\t\tclick() {\n\t\t\t\t\tdownload(win, props.srcURL);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\ttype: 'separator'\n\t\t\t}];\n\t\t}\n\n\t\tif (props.linkURL && props.mediaType === 'none') {\n\t\t\tmenuTpl = [{\n\t\t\t\ttype: 'separator'\n\t\t\t}, {\n\t\t\t\tid: 'copyLink',\n\t\t\t\tlabel: 'Copy Link',\n\t\t\t\tclick() {\n\t\t\t\t\tif (process.platform === 'darwin') {\n\t\t\t\t\t\telectron.clipboard.writeBookmark(props.linkText, props.linkURL);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telectron.clipboard.writeText(props.linkURL);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\ttype: 'separator'\n\t\t\t}];\n\t\t}\n\n\t\tif (opts.prepend) {\n\t\t\tconst result = opts.prepend(props, win);\n\n\t\t\tif (Array.isArray(result)) {\n\t\t\t\tmenuTpl.unshift(...result);\n\t\t\t}\n\t\t}\n\n\t\tif (opts.append) {\n\t\t\tconst result = opts.append(props, win);\n\n\t\t\tif (Array.isArray(result)) {\n\t\t\t\tmenuTpl.push(...result);\n\t\t\t}\n\t\t}\n\n\t\tif (opts.showInspectElement || (opts.showInspectElement !== false && isDev)) {\n\t\t\tmenuTpl.push({\n\t\t\t\ttype: 'separator'\n\t\t\t}, {\n\t\t\t\tid: 'inspect',\n\t\t\t\tlabel: 'Inspect Element',\n\t\t\t\tclick() {\n\t\t\t\t\twin.inspectElement(props.x, props.y);\n\n\t\t\t\t\tif (webContents(win).isDevToolsOpened()) {\n\t\t\t\t\t\twebContents(win).devToolsWebContents.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\ttype: 'separator'\n\t\t\t});\n\t\t}\n\n\t\t// Apply custom labels for default menu items\n\t\tif (opts.labels) {\n\t\t\tfor (const menuItem of menuTpl) {\n\t\t\t\tif (opts.labels[menuItem.id]) {\n\t\t\t\t\tmenuItem.label = opts.labels[menuItem.id];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Filter out leading/trailing separators\n\t\t// TODO: https://github.com/electron/electron/issues/5869\n\t\tmenuTpl = delUnusedElements(menuTpl);\n\n\t\tif (menuTpl.length > 0) {\n\t\t\tconst menu = (electron.remote ? electron.remote.Menu : electron.Menu).buildFromTemplate(menuTpl);\n\n\t\t\t/*\n\t\t\t * When electron.remote is not available this runs in the browser process.\n\t\t\t * We can safely use win in this case as it refers to the window the\n\t\t\t * context-menu should open in.\n\t\t\t * When this is being called from a webView, we can't use win as this\n\t\t\t * would refere to the webView which is not allowed to render a popup menu.\n\t\t\t */\n\t\t\tmenu.popup(electron.remote ? electron.remote.getCurrentWindow() : win);\n\t\t}\n\t});\n}\n\nfunction delUnusedElements(menuTpl) {\n\tlet notDeletedPrevEl;\n\treturn menuTpl.filter(el => el.visible !== false).filter((el, i, arr) => {\n\t\tconst toDelete = el.type === 'separator' && (!notDeletedPrevEl || i === arr.length - 1 || arr[i + 1].type === 'separator');\n\t\tnotDeletedPrevEl = toDelete ? notDeletedPrevEl : el;\n\t\treturn !toDelete;\n\t});\n}\n\nmodule.exports = (opts = {}) => {\n\tif (opts.window) {\n\t\tconst win = opts.window;\n\t\tconst wc = webContents(win);\n\n\t\t// When window is a webview that has not yet finished loading webContents is not available\n\t\tif (wc === undefined) {\n\t\t\twin.addEventListener('dom-ready', () => {\n\t\t\t\tcreate(win, opts);\n\t\t\t}, {once: true});\n\t\t\treturn;\n\t\t}\n\n\t\treturn create(win, opts);\n\t}\n\n\t(electron.BrowserWindow || electron.remote.BrowserWindow).getAllWindows().forEach(win => {\n\t\tcreate(win, opts);\n\t});\n\n\t(electron.app || electron.remote.app).on('browser-window-created', (e, win) => {\n\t\tcreate(win, opts);\n\t});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/electron-context-menu/index.js\n// module id = 54\n// module chunks = 0","'use strict';\nmodule.exports = process.defaultApp || /[\\\\/]electron-prebuilt[\\\\/]/.test(process.execPath) || /[\\\\/]electron[\\\\/]/.test(process.execPath);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/node_modules/electron-is-dev/index.js\n// module id = 55\n// module chunks = 0","import helpers from './../../helpers/helpers';\n\nconst { app, Tray, Menu, ipcMain, nativeImage } = require('electron');\n\nconst { getAppIcon, getCounterValue } = helpers;\n\n/**\n *\n * @param {{}} inpOptions AppArgs from nativefier.json\n * @param {electron.BrowserWindow} mainWindow MainWindow created from main.js\n * @returns {electron.Tray}\n */\nfunction createTrayIcon(inpOptions, mainWindow) {\n const options = Object.assign({}, inpOptions);\n\n if (options.tray) {\n const iconPath = getAppIcon();\n const nimage = nativeImage.createFromPath(iconPath);\n const appIcon = new Tray(nimage);\n\n const onClick = () => {\n if (mainWindow.isVisible()) {\n mainWindow.hide();\n } else {\n mainWindow.show();\n }\n };\n\n const contextMenu = Menu.buildFromTemplate([\n {\n label: options.name,\n click: onClick,\n },\n {\n label: 'Quit',\n click: app.exit,\n },\n ]);\n\n appIcon.on('click', onClick);\n\n mainWindow.on('show', () => {\n appIcon.setHighlightMode('always');\n });\n\n mainWindow.on('hide', () => {\n appIcon.setHighlightMode('never');\n });\n\n if (options.counter) {\n mainWindow.on('page-title-updated', (e, title) => {\n const counterValue = getCounterValue(title);\n if (counterValue) {\n appIcon.setToolTip(`(${counterValue}) ${options.name}`);\n } else {\n appIcon.setToolTip(options.name);\n }\n });\n } else {\n ipcMain.on('notification', () => {\n if (mainWindow.isFocused()) {\n return;\n }\n appIcon.setToolTip(`• ${options.name}`);\n });\n\n mainWindow.on('focus', () => {\n appIcon.setToolTip(options.name);\n });\n }\n\n appIcon.setToolTip(options.name);\n appIcon.setContextMenu(contextMenu);\n\n return appIcon;\n }\n\n return null;\n}\n\nexport default createTrayIcon;\n\n\n\n// WEBPACK FOOTER //\n// ./app/src/components/trayIcon/trayIcon.js","import fs from 'fs';\nimport path from 'path';\nimport helpers from './helpers';\n\nconst { isOSX, isWindows, isLinux } = helpers;\nconst log = require('loglevel');\n/**\n * Synchronously find a file or directory\n * @param {RegExp} pattern regex\n * @param {string} base path\n * @param {boolean} [findDir] if true, search results will be limited to only directories\n * @returns {Array}\n */\nfunction findSync(pattern, basePath, findDir) {\n const matches = [];\n\n (function findSyncRecurse(base) {\n let children;\n try {\n children = fs.readdirSync(base);\n } catch (exception) {\n if (exception.code === 'ENOENT') {\n return;\n }\n throw exception;\n }\n\n children.forEach((child) => {\n const childPath = path.join(base, child);\n const childIsDirectory = fs.lstatSync(childPath).isDirectory();\n const patternMatches = pattern.test(childPath);\n\n if (!patternMatches) {\n if (!childIsDirectory) {\n return;\n }\n findSyncRecurse(childPath);\n return;\n }\n\n if (!findDir) {\n matches.push(childPath);\n return;\n }\n\n if (childIsDirectory) {\n matches.push(childPath);\n }\n });\n })(basePath);\n return matches;\n}\n\nfunction linuxMatch() {\n return findSync(/libpepflashplayer\\.so/, '/opt/google/chrome')[0];\n}\n\nfunction windowsMatch() {\n return findSync(\n /pepflashplayer\\.dll/,\n 'C:\\\\Program Files (x86)\\\\Google\\\\Chrome',\n )[0];\n}\n\nfunction darwinMatch() {\n return findSync(\n /PepperFlashPlayer.plugin/,\n '/Applications/Google Chrome.app/',\n true,\n )[0];\n}\n\nfunction inferFlash() {\n if (isOSX()) {\n return darwinMatch();\n }\n\n if (isWindows()) {\n return windowsMatch();\n }\n\n if (isLinux()) {\n return linuxMatch();\n }\n\n log.warn('Unable to determine OS to infer flash player');\n return null;\n}\nexport default inferFlash;\n\n\n\n// WEBPACK FOOTER //\n// ./app/src/helpers/inferFlash.js"],"sourceRoot":""}