vendor.js.map 458.1 KB
{"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js?543d","webpack:///(webpack)/buildin/global.js?cd00","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js?66fd","webpack:///./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js?37dc","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js?f0c5","uni-app:///node_modules/uview-ui/index.js","uni-app:///node_modules/uview-ui/libs/mixin/mixin.js","uni-app:///node_modules/uview-ui/libs/request/index.js","uni-app:///node_modules/uview-ui/libs/function/deepMerge.js","uni-app:///node_modules/uview-ui/libs/function/deepClone.js","uni-app:///node_modules/uview-ui/libs/function/test.js","uni-app:///node_modules/uview-ui/libs/function/queryParams.js","uni-app:///node_modules/uview-ui/libs/function/route.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js?a34a","webpack:///./node_modules/regenerator-runtime/runtime-module.js?bbdd","webpack:///./node_modules/regenerator-runtime/runtime.js?96cf","uni-app:///node_modules/uview-ui/libs/function/timeFormat.js","uni-app:///node_modules/uview-ui/libs/function/timeFrom.js","uni-app:///node_modules/uview-ui/libs/function/colorGradient.js","uni-app:///node_modules/uview-ui/libs/function/guid.js","uni-app:///node_modules/uview-ui/libs/function/color.js","uni-app:///node_modules/uview-ui/libs/function/type2icon.js","uni-app:///node_modules/uview-ui/libs/function/randomArray.js","uni-app:///node_modules/uview-ui/libs/function/addUnit.js","uni-app:///node_modules/uview-ui/libs/function/random.js","uni-app:///node_modules/uview-ui/libs/function/trim.js","uni-app:///node_modules/uview-ui/libs/function/toast.js","uni-app:///node_modules/uview-ui/libs/function/getParent.js","uni-app:///node_modules/uview-ui/libs/function/$parent.js","uni-app:///node_modules/uview-ui/libs/function/sys.js","uni-app:///node_modules/uview-ui/libs/function/debounce.js","uni-app:///node_modules/uview-ui/libs/function/throttle.js","uni-app:///node_modules/uview-ui/libs/config/config.js","uni-app:///node_modules/uview-ui/libs/config/zIndex.js"],"names":["realAtob","b64","b64re","atob","str","String","replace","test","Error","slice","length","bitmap","result","r1","r2","i","indexOf","charAt","fromCharCode","b64DecodeUnicode","decodeURIComponent","split","map","c","charCodeAt","toString","join","getCurrentUserInfo","token","wx","getStorageSync","tokenArr","uid","role","permission","tokenExpired","userInfo","JSON","parse","error","message","exp","iat","uniIdMixin","Vue","prototype","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","_toString","Object","hasOwnProperty","isFn","fn","isStr","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","_","toUpperCase","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","keys","forEach","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","Math","floor","getLocale","app","getApp","allowDefault","$vm","$locale","language","setLocale","locale","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","__proto__","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","deviceId","addUuid","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","windowHeight","getSystemInfo","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","getUniEmitter","ctx","$on","arguments","$off","$once","$emit","eventApi","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","oldTriggerEvent","triggerEvent","event","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","vm","mocks","$mp","mpType","mock","hasHook","vueOptions","default","extendOptions","super","mixins","find","mixin","initHooks","mpOptions","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vueId","_$vuePid","initData","context","methods","e","process","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","type","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","generic","scopedSlotsCompiler","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","extraObj","__args__","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","$scope","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","once","i18n","t","i18nMixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$$t","values","setLocale$1","getLocale$1","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","eventChannels","eventChannelStack","getEventChannel","id","eventChannel","shift","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","$hasScopedSlotsParams","has","$getScopedSlotsParams","object","$setScopedSlotsParams","propsData","destroyed","parseBaseApp","initRefs","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","canIUse","globalData","_isMounted","findVmByVueId","vuePid","$children","childVm","parentVm","Behavior","isPage","route","initRelation","selectAllComponents","selector","$refs","components","component","ref","vueGeneric","scopedComponent","forComponents","handleLink","parent","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","undefined","val2","x","parseBaseComponent","vueComponentOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","is","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","getLaunchOptionsSync","createPlugin","canIUseApi","apiName","uni","Proxy","uni$1","isObject","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","position","text","char","sub","isClosed","compiled","mode","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","defaultFormatter","include","parts","part","startsWith","normalizeLocale","messages","trim","toLowerCase","lang","I18n","fallbackLocale","watcher","formater","watchers","override","curMessages","interpolate","watchAppLocale","newLocale","$watch","getDefaultLocale","initVueI18n","__uniConfig","isWatchedAppLocale","f","add","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","locales","localeValues","unshift","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","chain","pop","wranning","$u","queryParams","timeFormat","date","timeFrom","colorGradient","colorToRgba","guid","color","sys","os","type2icon","randomArray","http","post","put","delete","hexToRgb","rgbToHex","deepClone","deepMerge","getParent","addUnit","toast","config","zIndex","debounce","throttle","install","openShare","mpShare","timestamp","module","exports","getRect","$uGetRect","all","createSelectorQuery","in","boundingClientRect","rect","exec","getParentData","parentName","parentData","preventEvent","onReachBottom","beforeDestroy","array","children","childrenList","child","Request","customConfig","request","tmpConfig","interceptorRequest","dataType","responseType","header","response","hideLoading","clearTimeout","timer","originalData","resInterceptors","statusCode","validate","baseUrl","showLoading","setTimeout","title","loadingText","mask","loadingMask","loadingTime","source","prop","NaN","includes","o","email","mobile","dateISO","digits","idCard","carNo","xreg","creg","amount","chinese","reg","letter","enOrNum","contains","param","range","rangeLength","landline","empty","jsonString","code","RegExp","isEmpty","isPrefix","arrayFormat","prefix","_result","_value","commaStr","Router","animationType","animationDuration","intercept","bind","addRootPath","mergeConfig","mixinParam","routeIntercept","isNext","openPage","navigateTo","switchTab","reLaunch","navigateBack","require","padStart","maxLength","fillString","TypeError","fillLength","times","ceil","dateTime","fmt","opt","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","k","tips","startColor","endColor","step","startRGB","startR","startG","startB","endRGB","endR","endG","endB","sR","sG","sB","colorArr","hex","round","sColor","sColorNew","sColorChange","rgb","_this","aColor","strHex","aNum","numHex","alpha","firstU","radix","chars","uuid","r","primary","primaryDark","primaryDisabled","primaryLight","bgColor","info","infoDark","infoDisabled","infoLight","warning","warningDark","warningDisabled","warningLight","errorDark","errorDisabled","errorLight","successDark","successDisabled","successLight","mainColor","contentColor","tipsColor","lightColor","borderColor","fill","iconName","sort","unit","validation","min","max","gab","pos","duration","showToast","icon","timeout","func","wait","immediate","callNow","flag","version","noNetwork","popup","navbar","topTips","sticky","indexListSticky"],"mappings":"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AAI,EAAI;AAC9B,QAAIjD,MAAM,CAACjC,EAAD,EAAKkF,IAAL,CAAN,IAAoBjD,MAAM,CAAC4J,SAAD,EAAY3G,IAAZ,CAA9B,EAAiD;AAC/Cia,SAAG,CAACja,IAAD,CAAH,GAAY8B,SAAS,CAAC9B,IAAD,EAAO0H,OAAO,CAAC1H,IAAD,EAAOlF,EAAE,CAACkF,IAAD,CAAT,CAAd,CAArB;AACD;AACF,GAJD;AAKD;;AAEDlF,EAAE,CAAC2b,SAAH,GAAeA,SAAf;AACA3b,EAAE,CAACwe,UAAH,GAAgBA,UAAhB;AACAxe,EAAE,CAACye,eAAH,GAAqBA,eAArB;AACAze,EAAE,CAAC0e,mBAAH,GAAyBA,mBAAzB;AACA1e,EAAE,CAACgf,YAAH,GAAkBA,YAAlB;;AAEA,IAAIK,KAAK,GAAGF,GAAZ,C;;AAEeE,K;;;;;;;;;;;ACr/Df;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;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;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;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,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;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,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;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,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;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,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;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,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;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,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,uCAAuC;AACvC;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;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,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;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,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;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,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;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,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;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,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;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,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;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;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;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,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,4GAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gCAAgC,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA,WAAW,4GAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,4GAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA,UAAU,4GAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAqD,EAAE,SAAS;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;4nFC75LnB,IAAM/b,OAAO,GAAGD,KAAK,CAACC,OAAtB;AACA,IAAMgc,QAAQ,GAAG,SAAXA,QAAW,CAAClD,GAAD,UAASA,GAAG,KAAK,IAAR,IAAgB,OAAOA,GAAP,KAAe,QAAxC,EAAjB;AACA,IAAMmD,iBAAiB,GAAG,CAAC,GAAD,EAAM,GAAN,CAA1B,C;AACMC,a;AACF,2BAAc;AACV,SAAKC,OAAL,GAAehe,MAAM,CAACa,MAAP,CAAc,IAAd,CAAf;AACH,G;AACW3B,W,EAAS4W,M,EAAwC,KAAhCmI,UAAgC,uEAAnBH,iBAAmB;AACzD,UAAI,CAAChI,MAAL,EAAa;AACT,eAAO,CAAC5W,OAAD,CAAP;AACH;AACD,UAAIgf,MAAM,GAAG,KAAKF,OAAL,CAAa9e,OAAb,CAAb;AACA,UAAI,CAACgf,MAAL,EAAa;AACTA,cAAM,GAAGlf,KAAK,CAACE,OAAD,EAAU+e,UAAV,CAAd;AACA,aAAKD,OAAL,CAAa9e,OAAb,IAAwBgf,MAAxB;AACH;AACD,aAAOC,OAAO,CAACD,MAAD,EAASpI,MAAT,CAAd;AACH,K;;AAEL,IAAMsI,mBAAmB,GAAG,UAA5B;AACA,IAAMC,oBAAoB,GAAG,UAA7B;AACA,SAASrf,KAAT,CAAesf,MAAf,QAAuD,qCAA/BC,cAA+B,YAAfC,YAAe;AACnD,MAAMN,MAAM,GAAG,EAAf;AACA,MAAIO,QAAQ,GAAG,CAAf;AACA,MAAIC,IAAI,GAAG,EAAX;AACA,SAAOD,QAAQ,GAAGH,MAAM,CAAClhB,MAAzB,EAAiC;AAC7B,QAAIuhB,IAAI,GAAGL,MAAM,CAACG,QAAQ,EAAT,CAAjB;AACA,QAAIE,IAAI,KAAKJ,cAAb,EAA6B;AACzB,UAAIG,IAAJ,EAAU;AACNR,cAAM,CAAClc,IAAP,CAAY,EAAEqP,IAAI,EAAE,MAAR,EAAgBhM,KAAK,EAAEqZ,IAAvB,EAAZ;AACH;AACDA,UAAI,GAAG,EAAP;AACA,UAAIE,GAAG,GAAG,EAAV;AACAD,UAAI,GAAGL,MAAM,CAACG,QAAQ,EAAT,CAAb;AACA,aAAOE,IAAI,KAAK/D,SAAT,IAAsB+D,IAAI,KAAKH,YAAtC,EAAoD;AAChDI,WAAG,IAAID,IAAP;AACAA,YAAI,GAAGL,MAAM,CAACG,QAAQ,EAAT,CAAb;AACH;AACD,UAAMI,QAAQ,GAAGF,IAAI,KAAKH,YAA1B;AACA,UAAMnN,IAAI,GAAG+M,mBAAmB,CAACnhB,IAApB,CAAyB2hB,GAAzB;AACP,YADO;AAEPC,cAAQ,IAAIR,oBAAoB,CAACphB,IAArB,CAA0B2hB,GAA1B,CAAZ;AACI,aADJ;AAEI,eAJV;AAKAV,YAAM,CAAClc,IAAP,CAAY,EAAEqD,KAAK,EAAEuZ,GAAT,EAAcvN,IAAI,EAAJA,IAAd,EAAZ;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AAxBA,SAyBK;AACDqN,YAAI,IAAIC,IAAR;AACH;AACJ;AACDD,MAAI,IAAIR,MAAM,CAAClc,IAAP,CAAY,EAAEqP,IAAI,EAAE,MAAR,EAAgBhM,KAAK,EAAEqZ,IAAvB,EAAZ,CAAR;AACA,SAAOR,MAAP;AACH;AACD,SAASC,OAAT,CAAiBD,MAAjB,EAAyBpI,MAAzB,EAAiC;AAC7B,MAAMgJ,QAAQ,GAAG,EAAjB;AACA,MAAI3c,KAAK,GAAG,CAAZ;AACA,MAAM4c,IAAI,GAAGld,OAAO,CAACiU,MAAD,CAAP;AACP,QADO;AAEP+H,UAAQ,CAAC/H,MAAD,CAAR;AACI,SADJ;AAEI,WAJV;AAKA,MAAIiJ,IAAI,KAAK,SAAb,EAAwB;AACpB,WAAOD,QAAP;AACH;AACD,SAAO3c,KAAK,GAAG+b,MAAM,CAAC9gB,MAAtB,EAA8B;AAC1B,QAAMkB,KAAK,GAAG4f,MAAM,CAAC/b,KAAD,CAApB;AACA,YAAQ7D,KAAK,CAAC+S,IAAd;AACI,WAAK,MAAL;AACIyN,gBAAQ,CAAC9c,IAAT,CAAc1D,KAAK,CAAC+G,KAApB;AACA;AACJ,WAAK,MAAL;AACIyZ,gBAAQ,CAAC9c,IAAT,CAAc8T,MAAM,CAAChN,QAAQ,CAACxK,KAAK,CAAC+G,KAAP,EAAc,EAAd,CAAT,CAApB;AACA;AACJ,WAAK,OAAL;AACI,YAAI0Z,IAAI,KAAK,OAAb,EAAsB;AAClBD,kBAAQ,CAAC9c,IAAT,CAAc8T,MAAM,CAACxX,KAAK,CAAC+G,KAAP,CAApB;AACH,SAFD;AAGK;AACD,cAAI4K,IAAJ,EAA2C;AACvCjF,mBAAO,CAACC,IAAR,0BAA+B3M,KAAK,CAAC+S,IAArC,oCAAmE0N,IAAnE;AACH;AACJ;AACD;AACJ,WAAK,SAAL;AACI,YAAI9O,IAAJ,EAA2C;AACvCjF,iBAAO,CAACC,IAAR;AACH;AACD,cArBR;;AAuBA9I,SAAK;AACR;AACD,SAAO2c,QAAP;AACH;;AAED,IAAME,cAAc,GAAG,SAAvB,C;AACA,IAAMC,cAAc,GAAG,SAAvB,C;AACA,IAAMC,SAAS,GAAG,IAAlB,C;AACA,IAAMC,SAAS,GAAG,IAAlB,C;AACA,IAAMC,SAAS,GAAG,IAAlB,C;AACA,IAAMnf,cAAc,GAAGD,MAAM,CAACT,SAAP,CAAiBU,cAAxC;AACA,IAAMO,MAAM,GAAG,SAATA,MAAS,CAACma,GAAD,EAAMla,GAAN,UAAcR,cAAc,CAACM,IAAf,CAAoBoa,GAApB,EAAyBla,GAAzB,CAAd,EAAf;AACA,IAAM4e,gBAAgB,GAAG,IAAItB,aAAJ,EAAzB;AACA,SAASuB,OAAT,CAAiBxiB,GAAjB,EAAsByiB,KAAtB,EAA6B;AACzB,SAAO,CAAC,CAACA,KAAK,CAAC3Q,IAAN,CAAW,UAAC4Q,IAAD,UAAU1iB,GAAG,CAACY,OAAJ,CAAY8hB,IAAZ,MAAsB,CAAC,CAAjC,EAAX,CAAT;AACH;AACD,SAASC,UAAT,CAAoB3iB,GAApB,EAAyByiB,KAAzB,EAAgC;AAC5B,SAAOA,KAAK,CAAC3Q,IAAN,CAAW,UAAC4Q,IAAD,UAAU1iB,GAAG,CAACY,OAAJ,CAAY8hB,IAAZ,MAAsB,CAAhC,EAAX,CAAP;AACH;AACD,SAASE,eAAT,CAAyBrY,MAAzB,EAAiCsY,QAAjC,EAA2C;AACvC,MAAI,CAACtY,MAAL,EAAa;AACT;AACH;AACDA,QAAM,GAAGA,MAAM,CAACuY,IAAP,GAAc5iB,OAAd,CAAsB,IAAtB,EAA4B,GAA5B,CAAT;AACA,MAAI2iB,QAAQ,IAAIA,QAAQ,CAACtY,MAAD,CAAxB,EAAkC;AAC9B,WAAOA,MAAP;AACH;AACDA,QAAM,GAAGA,MAAM,CAACwY,WAAP,EAAT;AACA,MAAIxY,MAAM,CAAC3J,OAAP,CAAe,IAAf,MAAyB,CAA7B,EAAgC;AAC5B,QAAI2J,MAAM,CAAC3J,OAAP,CAAe,OAAf,IAA0B,CAAC,CAA/B,EAAkC;AAC9B,aAAOshB,cAAP;AACH;AACD,QAAI3X,MAAM,CAAC3J,OAAP,CAAe,OAAf,IAA0B,CAAC,CAA/B,EAAkC;AAC9B,aAAOuhB,cAAP;AACH;AACD,QAAIK,OAAO,CAACjY,MAAD,EAAS,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,MAAtB,CAAT,CAAX,EAAoD;AAChD,aAAO4X,cAAP;AACH;AACD,WAAOD,cAAP;AACH;AACD,MAAMc,IAAI,GAAGL,UAAU,CAACpY,MAAD,EAAS,CAAC6X,SAAD,EAAYC,SAAZ,EAAuBC,SAAvB,CAAT,CAAvB;AACA,MAAIU,IAAJ,EAAU;AACN,WAAOA,IAAP;AACH;AACJ,C;AACKC,I;AACF,uBAAsE,KAAxD1Y,MAAwD,SAAxDA,MAAwD,CAAhD2Y,cAAgD,SAAhDA,cAAgD,CAAhCL,QAAgC,SAAhCA,QAAgC,CAAtBM,OAAsB,SAAtBA,OAAsB,CAAbC,QAAa,SAAbA,QAAa;AAClE,SAAK7Y,MAAL,GAAc6X,SAAd;AACA,SAAKc,cAAL,GAAsBd,SAAtB;AACA,SAAKhgB,OAAL,GAAe,EAAf;AACA,SAAKygB,QAAL,GAAgB,EAAhB;AACA,SAAKQ,QAAL,GAAgB,EAAhB;AACA,QAAIH,cAAJ,EAAoB;AAChB,WAAKA,cAAL,GAAsBA,cAAtB;AACH;AACD,SAAKE,QAAL,GAAgBA,QAAQ,IAAIb,gBAA5B;AACA,SAAKM,QAAL,GAAgBA,QAAQ,IAAI,EAA5B;AACA,SAAKvY,SAAL,CAAeC,MAAM,IAAI6X,SAAzB;AACA,QAAIe,OAAJ,EAAa;AACT,WAAKtK,WAAL,CAAiBsK,OAAjB;AACH;AACJ,G;AACS5Y,U,EAAQ;AACd,UAAMC,SAAS,GAAG,KAAKD,MAAvB;AACA,WAAKA,MAAL,GAAcqY,eAAe,CAACrY,MAAD,EAAS,KAAKsY,QAAd,CAAf,IAA0C,KAAKK,cAA7D;AACA,UAAI,CAAC,KAAKL,QAAL,CAAc,KAAKtY,MAAnB,CAAL,EAAiC;AAC7B;AACA,aAAKsY,QAAL,CAAc,KAAKtY,MAAnB,IAA6B,EAA7B;AACH;AACD,WAAKnI,OAAL,GAAe,KAAKygB,QAAL,CAAc,KAAKtY,MAAnB,CAAf;AACA;AACA,UAAIC,SAAS,KAAK,KAAKD,MAAvB,EAA+B;AAC3B,aAAK8Y,QAAL,CAAc1d,OAAd,CAAsB,UAACwd,OAAD,EAAa;AAC/BA,iBAAO,CAAC,KAAI,CAAC5Y,MAAN,EAAcC,SAAd,CAAP;AACH,SAFD;AAGH;AACJ,K;AACW;AACR,aAAO,KAAKD,MAAZ;AACH,K;AACWlH,M,EAAI;AACZ,UAAMgC,KAAK,GAAG,KAAKge,QAAL,CAAcne,IAAd,CAAmB7B,EAAnB,IAAyB,CAAvC;AACA,aAAO,YAAM;AACT,cAAI,CAACggB,QAAL,CAAc/d,MAAd,CAAqBD,KAArB,EAA4B,CAA5B;AACH,OAFD;AAGH,K;AACGkF,U,EAAQnI,O,EAA0B,KAAjBkhB,QAAiB,uEAAN,IAAM;AAClC,UAAMC,WAAW,GAAG,KAAKV,QAAL,CAActY,MAAd,CAApB;AACA,UAAIgZ,WAAJ,EAAiB;AACb,YAAID,QAAJ,EAAc;AACVpgB,gBAAM,CAAC4F,MAAP,CAAcya,WAAd,EAA2BnhB,OAA3B;AACH,SAFD;AAGK;AACDc,gBAAM,CAACwC,IAAP,CAAYtD,OAAZ,EAAqBuD,OAArB,CAA6B,UAAChC,GAAD,EAAS;AAClC,gBAAI,CAACD,MAAM,CAAC6f,WAAD,EAAc5f,GAAd,CAAX,EAA+B;AAC3B4f,yBAAW,CAAC5f,GAAD,CAAX,GAAmBvB,OAAO,CAACuB,GAAD,CAA1B;AACH;AACJ,WAJD;AAKH;AACJ,OAXD;AAYK;AACD,aAAKkf,QAAL,CAActY,MAAd,IAAwBnI,OAAxB;AACH;AACJ,K;AACCA,W,EAAS4W,M,EAAQmI,U,EAAY;AAC3B,aAAO,KAAKiC,QAAL,CAAcI,WAAd,CAA0BphB,OAA1B,EAAmC4W,MAAnC,EAA2CmI,UAA3C,EAAuD7f,IAAvD,CAA4D,EAA5D,CAAP;AACH,K;AACCqC,O,EAAK4G,M,EAAQyO,M,EAAQ;AACnB,UAAI5W,OAAO,GAAG,KAAKA,OAAnB;AACA,UAAI,OAAOmI,MAAP,KAAkB,QAAtB,EAAgC;AAC5BA,cAAM,GAAGqY,eAAe,CAACrY,MAAD,EAAS,KAAKsY,QAAd,CAAxB;AACAtY,cAAM,KAAKnI,OAAO,GAAG,KAAKygB,QAAL,CAActY,MAAd,CAAf,CAAN;AACH,OAHD;AAIK;AACDyO,cAAM,GAAGzO,MAAT;AACH;AACD,UAAI,CAAC7G,MAAM,CAACtB,OAAD,EAAUuB,GAAV,CAAX,EAA2B;AACvBuK,eAAO,CAACC,IAAR,iDAAsDxK,GAAtD;AACA,eAAOA,GAAP;AACH;AACD,aAAO,KAAKyf,QAAL,CAAcI,WAAd,CAA0BphB,OAAO,CAACuB,GAAD,CAAjC,EAAwCqV,MAAxC,EAAgD1X,IAAhD,CAAqD,EAArD,CAAP;AACH,K;;;AAGL,SAASmiB,cAAT,CAAwBrK,KAAxB,EAA+BZ,IAA/B,EAAqC;AACjC;AACA,MAAIY,KAAK,CAACI,YAAV,EAAwB;AACpB;AACAJ,SAAK,CAACI,YAAN,CAAmB,UAACkK,SAAD,EAAe;AAC9BlL,UAAI,CAAClO,SAAL,CAAeoZ,SAAf;AACH,KAFD;AAGH,GALD;AAMK;AACDtK,SAAK,CAACuK,MAAN,CAAa,oBAAMvK,KAAK,CAAChP,OAAZ,EAAb,EAAkC,UAACsZ,SAAD,EAAe;AAC7ClL,UAAI,CAAClO,SAAL,CAAeoZ,SAAf;AACH,KAFD;AAGH;AACJ;AACD,SAASE,gBAAT,GAA4B;AACxB,MAAI,OAAOhD,GAAP,KAAe,WAAf,IAA8BA,GAAG,CAAC7W,SAAtC,EAAiD;AAC7C,WAAO6W,GAAG,CAAC7W,SAAJ,EAAP;AACH;AACD;AACA,MAAI,OAAOY,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACZ,SAA5C,EAAuD;AACnD,WAAOY,MAAM,CAACZ,SAAP,EAAP;AACH;AACD,SAAOqY,SAAP;AACH;AACD,SAASyB,WAAT,CAAqBtZ,MAArB,EAAqE,KAAxCsY,QAAwC,uEAA7B,EAA6B,KAAzBK,cAAyB,uDAATC,OAAS;AACjE;AACA,MAAI,OAAO5Y,MAAP,KAAkB,QAAtB,EAAgC;AACP;AACjBsY,YADiB;AAEjBtY,UAFiB,CADO,CAC3BA,MAD2B,YACnBsY,QADmB;;AAK/B;AACD,MAAI,OAAOtY,MAAP,KAAkB,QAAtB,EAAgC;AAC5B;AACAA,UAAM,GAAGqZ,gBAAgB,EAAzB;AACH;AACD,MAAI,OAAOV,cAAP,KAA0B,QAA9B,EAAwC;AACpCA,kBAAc;AACT,WAAOY,WAAP,KAAuB,WAAvB,IAAsCA,WAAW,CAACZ,cAAnD;AACId,aAFR;AAGH;AACD,MAAM5J,IAAI,GAAG,IAAIyK,IAAJ,CAAS;AAClB1Y,UAAM,EAANA,MADkB;AAElB2Y,kBAAc,EAAdA,cAFkB;AAGlBL,YAAQ,EAARA,QAHkB;AAIlBM,WAAO,EAAPA,OAJkB,EAAT,CAAb;;AAMA,MAAI1K,EAAC,GAAG,WAAC9U,GAAD,EAAMqV,MAAN,EAAiB;AACrB,QAAI,OAAO/O,MAAP,KAAkB,UAAtB,EAAkC;AAC9B;AACA;AACAwO,QAAC,GAAG,WAAU9U,GAAV,EAAeqV,MAAf,EAAuB;AACvB,eAAOR,IAAI,CAACC,CAAL,CAAO9U,GAAP,EAAYqV,MAAZ,CAAP;AACH,OAFD;AAGH,KAND;AAOK;AACD,UAAI+K,kBAAkB,GAAG,KAAzB;AACAtL,QAAC,GAAG,WAAU9U,GAAV,EAAeqV,MAAf,EAAuB;AACvB,YAAMI,KAAK,GAAGnP,MAAM,GAAGE,GAAvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAIiP,KAAJ,EAAW;AACP;AACAA,eAAK,CAAChP,OAAN;AACA,cAAI,CAAC2Z,kBAAL,EAAyB;AACrBA,8BAAkB,GAAG,IAArB;AACAN,0BAAc,CAACrK,KAAD,EAAQZ,IAAR,CAAd;AACH;AACJ;AACD,eAAOA,IAAI,CAACC,CAAL,CAAO9U,GAAP,EAAYqV,MAAZ,CAAP;AACH,OAxBD;AAyBH;AACD,WAAOP,EAAC,CAAC9U,GAAD,EAAMqV,MAAN,CAAR;AACH,GArCD;AAsCA,SAAO;AACHR,QAAI,EAAJA,IADG;AAEHwL,KAFG,aAED5hB,OAFC,EAEQ4W,MAFR,EAEgBmI,UAFhB,EAE4B;AAC3B,aAAO3I,IAAI,CAACwL,CAAL,CAAO5hB,OAAP,EAAgB4W,MAAhB,EAAwBmI,UAAxB,CAAP;AACH,KAJE;AAKH1I,KALG,aAKD9U,GALC,EAKIqV,MALJ,EAKY;AACX,aAAOP,EAAC,CAAC9U,GAAD,EAAMqV,MAAN,CAAR;AACH,KAPE;AAQHiL,OARG,eAQC1Z,MARD,EAQSnI,OART,EAQmC,KAAjBkhB,QAAiB,uEAAN,IAAM;AAClC,aAAO9K,IAAI,CAACyL,GAAL,CAAS1Z,MAAT,EAAiBnI,OAAjB,EAA0BkhB,QAA1B,CAAP;AACH,KAVE;AAWHzJ,SAXG,iBAWGxW,EAXH,EAWO;AACN,aAAOmV,IAAI,CAACK,WAAL,CAAiBxV,EAAjB,CAAP;AACH,KAbE;AAcH0G,aAdG,uBAcS;AACR,aAAOyO,IAAI,CAACzO,SAAL,EAAP;AACH,KAhBE;AAiBHO,aAjBG,qBAiBOoZ,SAjBP,EAiBkB;AACjB,aAAOlL,IAAI,CAAClO,SAAL,CAAeoZ,SAAf,CAAP;AACH,KAnBE,EAAP;;AAqBH;;AAED,IAAMQ,QAAQ,GAAG,SAAXA,QAAW,CAACrG,GAAD,UAAS,OAAOA,GAAP,KAAe,QAAxB,EAAjB,C;AACA,IAAIuF,QAAJ;AACA,SAASe,WAAT,CAAqBC,OAArB,EAA8BjD,UAA9B,EAA0C;AACtC,MAAI,CAACiC,QAAL,EAAe;AACXA,YAAQ,GAAG,IAAInC,aAAJ,EAAX;AACH;AACD,SAAOoD,WAAW,CAACD,OAAD,EAAU,UAACA,OAAD,EAAUzgB,GAAV,EAAkB;AAC1C,QAAM4E,KAAK,GAAG6b,OAAO,CAACzgB,GAAD,CAArB;AACA,QAAIugB,QAAQ,CAAC3b,KAAD,CAAZ,EAAqB;AACjB,UAAI+b,SAAS,CAAC/b,KAAD,EAAQ4Y,UAAR,CAAb,EAAkC;AAC9B,eAAO,IAAP;AACH;AACJ,KAJD;AAKK;AACD,aAAOgD,WAAW,CAAC5b,KAAD,EAAQ4Y,UAAR,CAAlB;AACH;AACJ,GAViB,CAAlB;AAWH;AACD,SAASoD,aAAT,CAAuBH,OAAvB,EAAgCpL,MAAhC,EAAwCmI,UAAxC,EAAoD;AAChD,MAAI,CAACiC,QAAL,EAAe;AACXA,YAAQ,GAAG,IAAInC,aAAJ,EAAX;AACH;AACDoD,aAAW,CAACD,OAAD,EAAU,UAACA,OAAD,EAAUzgB,GAAV,EAAkB;AACnC,QAAM4E,KAAK,GAAG6b,OAAO,CAACzgB,GAAD,CAArB;AACA,QAAIugB,QAAQ,CAAC3b,KAAD,CAAZ,EAAqB;AACjB,UAAI+b,SAAS,CAAC/b,KAAD,EAAQ4Y,UAAR,CAAb,EAAkC;AAC9BiD,eAAO,CAACzgB,GAAD,CAAP,GAAe6gB,UAAU,CAACjc,KAAD,EAAQyQ,MAAR,EAAgBmI,UAAhB,CAAzB;AACH;AACJ,KAJD;AAKK;AACDoD,mBAAa,CAAChc,KAAD,EAAQyQ,MAAR,EAAgBmI,UAAhB,CAAb;AACH;AACJ,GAVU,CAAX;AAWA,SAAOiD,OAAP;AACH;AACD,SAASK,kBAAT,CAA4BC,OAA5B,SAAuE,KAAhCna,MAAgC,SAAhCA,MAAgC,CAAxBoa,OAAwB,SAAxBA,OAAwB,CAAfxD,UAAe,SAAfA,UAAe;AACnE,MAAI,CAACmD,SAAS,CAACI,OAAD,EAAUvD,UAAV,CAAd,EAAqC;AACjC,WAAOuD,OAAP;AACH;AACD,MAAI,CAACtB,QAAL,EAAe;AACXA,YAAQ,GAAG,IAAInC,aAAJ,EAAX;AACH;AACD,MAAM2D,YAAY,GAAG,EAArB;AACA1hB,QAAM,CAACwC,IAAP,CAAYif,OAAZ,EAAqBhf,OAArB,CAA6B,UAACgB,IAAD,EAAU;AACnC,QAAIA,IAAI,KAAK4D,MAAb,EAAqB;AACjBqa,kBAAY,CAAC1f,IAAb,CAAkB;AACdqF,cAAM,EAAE5D,IADM;AAEdqS,cAAM,EAAE2L,OAAO,CAAChe,IAAD,CAFD,EAAlB;;AAIH;AACJ,GAPD;AAQAie,cAAY,CAACC,OAAb,CAAqB,EAAEta,MAAM,EAANA,MAAF,EAAUyO,MAAM,EAAE2L,OAAO,CAACpa,MAAD,CAAzB,EAArB;AACA,MAAI;AACA,WAAOtI,IAAI,CAACoR,SAAL,CAAeyR,cAAc,CAAC7iB,IAAI,CAACC,KAAL,CAAWwiB,OAAX,CAAD,EAAsBE,YAAtB,EAAoCzD,UAApC,CAA7B,EAA8E,IAA9E,EAAoF,CAApF,CAAP;AACH;AACD,SAAOjO,CAAP,EAAU,CAAG;AACb,SAAOwR,OAAP;AACH;AACD,SAASJ,SAAT,CAAmB/b,KAAnB,EAA0B4Y,UAA1B,EAAsC;AAClC,SAAO5Y,KAAK,CAAC3H,OAAN,CAAcugB,UAAU,CAAC,CAAD,CAAxB,IAA+B,CAAC,CAAvC;AACH;AACD,SAASqD,UAAT,CAAoBjc,KAApB,EAA2ByQ,MAA3B,EAAmCmI,UAAnC,EAA+C;AAC3C,SAAOiC,QAAQ,CAACI,WAAT,CAAqBjb,KAArB,EAA4ByQ,MAA5B,EAAoCmI,UAApC,EAAgD7f,IAAhD,CAAqD,EAArD,CAAP;AACH;AACD,SAASyjB,YAAT,CAAsBX,OAAtB,EAA+BzgB,GAA/B,EAAoCihB,YAApC,EAAkDzD,UAAlD,EAA8D;AAC1D,MAAM5Y,KAAK,GAAG6b,OAAO,CAACzgB,GAAD,CAArB;AACA,MAAIugB,QAAQ,CAAC3b,KAAD,CAAZ,EAAqB;AACjB;AACA,QAAI+b,SAAS,CAAC/b,KAAD,EAAQ4Y,UAAR,CAAb,EAAkC;AAC9BiD,aAAO,CAACzgB,GAAD,CAAP,GAAe6gB,UAAU,CAACjc,KAAD,EAAQqc,YAAY,CAAC,CAAD,CAAZ,CAAgB5L,MAAxB,EAAgCmI,UAAhC,CAAzB;AACA,UAAIyD,YAAY,CAACtkB,MAAb,GAAsB,CAA1B,EAA6B;AACzB;AACA,YAAM0kB,YAAY,GAAIZ,OAAO,CAACzgB,GAAG,GAAG,SAAP,CAAP,GAA2B,EAAjD;AACAihB,oBAAY,CAACjf,OAAb,CAAqB,UAACsf,UAAD,EAAgB;AACjCD,sBAAY,CAACC,UAAU,CAAC1a,MAAZ,CAAZ,GAAkCia,UAAU,CAACjc,KAAD,EAAQ0c,UAAU,CAACjM,MAAnB,EAA2BmI,UAA3B,CAA5C;AACH,SAFD;AAGH;AACJ;AACJ,GAZD;AAaK;AACD2D,kBAAc,CAACvc,KAAD,EAAQqc,YAAR,EAAsBzD,UAAtB,CAAd;AACH;AACJ;AACD,SAAS2D,cAAT,CAAwBV,OAAxB,EAAiCQ,YAAjC,EAA+CzD,UAA/C,EAA2D;AACvDkD,aAAW,CAACD,OAAD,EAAU,UAACA,OAAD,EAAUzgB,GAAV,EAAkB;AACnCohB,gBAAY,CAACX,OAAD,EAAUzgB,GAAV,EAAeihB,YAAf,EAA6BzD,UAA7B,CAAZ;AACH,GAFU,CAAX;AAGA,SAAOiD,OAAP;AACH;AACD,SAASC,WAAT,CAAqBD,OAArB,EAA8Bc,IAA9B,EAAoC;AAChC,MAAIngB,OAAO,CAACqf,OAAD,CAAX,EAAsB;AAClB,SAAK,IAAIzjB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyjB,OAAO,CAAC9jB,MAA5B,EAAoCK,CAAC,EAArC,EAAyC;AACrC,UAAIukB,IAAI,CAACd,OAAD,EAAUzjB,CAAV,CAAR,EAAsB;AAClB,eAAO,IAAP;AACH;AACJ;AACJ,GAND;AAOK,MAAIogB,QAAQ,CAACqD,OAAD,CAAZ,EAAuB;AACxB,SAAK,IAAMzgB,GAAX,IAAkBygB,OAAlB,EAA2B;AACvB,UAAIc,IAAI,CAACd,OAAD,EAAUzgB,GAAV,CAAR,EAAwB;AACpB,eAAO,IAAP;AACH;AACJ;AACJ;AACD,SAAO,KAAP;AACH;;AAED,SAASwhB,aAAT,CAAuBR,OAAvB,EAAgC;AAC5B,SAAO,UAACpa,MAAD,EAAY;AACf,QAAI,CAACA,MAAL,EAAa;AACT,aAAOA,MAAP;AACH;AACDA,UAAM,GAAGqY,eAAe,CAACrY,MAAD,CAAf,IAA2BA,MAApC;AACA,WAAO6a,kBAAkB,CAAC7a,MAAD,CAAlB,CAA2BuH,IAA3B,CAAgC,UAACvH,MAAD,UAAYoa,OAAO,CAAC/jB,OAAR,CAAgB2J,MAAhB,IAA0B,CAAC,CAAvC,EAAhC,CAAP;AACH,GAND;AAOH;AACD,SAAS6a,kBAAT,CAA4B7a,MAA5B,EAAoC;AAChC,MAAM8a,KAAK,GAAG,EAAd;AACA,MAAMjE,MAAM,GAAG7W,MAAM,CAACtJ,KAAP,CAAa,GAAb,CAAf;AACA,SAAOmgB,MAAM,CAAC9gB,MAAd,EAAsB;AAClB+kB,SAAK,CAACngB,IAAN,CAAWkc,MAAM,CAAC9f,IAAP,CAAY,GAAZ,CAAX;AACA8f,UAAM,CAACkE,GAAP;AACH;AACD,SAAOD,KAAP;AACH,C;;;;;;;;;;;;;;;;;;;;;;;;;;;ACncD;AAAA;AAAA;;AAEA;AACA;AACA;;AAEe;AACf;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,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;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;;;;;;;;;;;;;;;;;;;;ACjHA;;;;AAIA;;;;;;;;;;;;;;;;;;;;;AAqBA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;;AAIA;;AAEA;;AAEA;;;;AAIA;;AAEA,6F,8FA3EA;AAEA;AACA;AACA;AAGA,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A;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;wFChtBA;AACA;AACA,IAAI,CAACptB,MAAM,CAACwC,SAAP,CAAiB6qB,QAAtB,EAAgC;AAC/B;AACArtB,QAAM,CAACwC,SAAP,CAAiB6qB,QAAjB,GAA4B,UAASC,SAAT,EAAsC,KAAlBC,UAAkB,uEAAL,GAAK;AACjE,QAAItqB,MAAM,CAACT,SAAP,CAAiBpB,QAAjB,CAA0BoC,IAA1B,CAA+B+pB,UAA/B,MAA+C,iBAAnD,EAAsE,MAAM,IAAIC,SAAJ;AAC3E,+BAD2E,CAAN;AAEtE,QAAIztB,GAAG,GAAG,IAAV;AACA;AACA,QAAIA,GAAG,CAACM,MAAJ,IAAcitB,SAAlB,EAA6B,OAAOttB,MAAM,CAACD,GAAD,CAAb;;AAE7B,QAAI0tB,UAAU,GAAGH,SAAS,GAAGvtB,GAAG,CAACM,MAAjC;AACCqtB,SAAK,GAAG9jB,IAAI,CAAC+j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","file":"common/vendor.js","sourcesContent":["import Vue from 'vue';\r\nimport { initVueI18n } from '@dcloudio/uni-i18n';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n  realAtob = function (str) {\r\n    str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n    if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n    // Adding the padding if missing, for semplicity\r\n    str += '=='.slice(2 - (str.length & 3));\r\n    var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n    for (; i < str.length;) {\r\n      bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n                    (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n      result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n        : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n          : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n    }\r\n    return result\r\n  };\r\n} else {\r\n  // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n  realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n  return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n    return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n  }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n  const token = ( wx).getStorageSync('uni_id_token') || '';\r\n  const tokenArr = token.split('.');\r\n  if (!token || tokenArr.length !== 3) {\r\n    return {\r\n      uid: null,\r\n      role: [],\r\n      permission: [],\r\n      tokenExpired: 0\r\n    }\r\n  }\r\n  let userInfo;\r\n  try {\r\n    userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n  } catch (error) {\r\n    throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n  }\r\n  userInfo.tokenExpired = userInfo.exp * 1000;\r\n  delete userInfo.exp;\r\n  delete userInfo.iat;\r\n  return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n  Vue.prototype.uniIDHasRole = function (roleId) {\r\n    const {\r\n      role\r\n    } = getCurrentUserInfo();\r\n    return role.indexOf(roleId) > -1\r\n  };\r\n  Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n    const {\r\n      permission\r\n    } = getCurrentUserInfo();\r\n    return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n  };\r\n  Vue.prototype.uniIDTokenValid = function () {\r\n    const {\r\n      tokenExpired\r\n    } = getCurrentUserInfo();\r\n    return tokenExpired > Date.now()\r\n  };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n  return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n  return typeof str === 'string'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n  return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n  return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () {}\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n  const cache = Object.create(null);\r\n  return function cachedFn (str) {\r\n    const hit = cache[str];\r\n    return hit || (cache[str] = fn(str))\r\n  }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nconst HOOKS = [\r\n  'invoke',\r\n  'success',\r\n  'fail',\r\n  'complete',\r\n  'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n  const res = childVal\r\n    ? parentVal\r\n      ? parentVal.concat(childVal)\r\n      : Array.isArray(childVal)\r\n        ? childVal : [childVal]\r\n    : parentVal;\r\n  return res\r\n    ? dedupeHooks(res)\r\n    : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n  const res = [];\r\n  for (let i = 0; i < hooks.length; i++) {\r\n    if (res.indexOf(hooks[i]) === -1) {\r\n      res.push(hooks[i]);\r\n    }\r\n  }\r\n  return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n  const index = hooks.indexOf(hook);\r\n  if (index !== -1) {\r\n    hooks.splice(index, 1);\r\n  }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n  Object.keys(option).forEach(hook => {\r\n    if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n      interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n    }\r\n  });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n  if (!interceptor || !option) {\r\n    return\r\n  }\r\n  Object.keys(option).forEach(hook => {\r\n    if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n      removeHook(interceptor[hook], option[hook]);\r\n    }\r\n  });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n  if (typeof method === 'string' && isPlainObject(option)) {\r\n    mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n  } else if (isPlainObject(method)) {\r\n    mergeInterceptorHook(globalInterceptors, method);\r\n  }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n  if (typeof method === 'string') {\r\n    if (isPlainObject(option)) {\r\n      removeInterceptorHook(scopedInterceptors[method], option);\r\n    } else {\r\n      delete scopedInterceptors[method];\r\n    }\r\n  } else if (isPlainObject(method)) {\r\n    removeInterceptorHook(globalInterceptors, method);\r\n  }\r\n}\r\n\r\nfunction wrapperHook (hook) {\r\n  return function (data) {\r\n    return hook(data) || data\r\n  }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n  return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data) {\r\n  let promise = false;\r\n  for (let i = 0; i < hooks.length; i++) {\r\n    const hook = hooks[i];\r\n    if (promise) {\r\n      promise = Promise.resolve(wrapperHook(hook));\r\n    } else {\r\n      const res = hook(data);\r\n      if (isPromise(res)) {\r\n        promise = Promise.resolve(res);\r\n      }\r\n      if (res === false) {\r\n        return {\r\n          then () { }\r\n        }\r\n      }\r\n    }\r\n  }\r\n  return promise || {\r\n    then (callback) {\r\n      return callback(data)\r\n    }\r\n  }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n  ['success', 'fail', 'complete'].forEach(name => {\r\n    if (Array.isArray(interceptor[name])) {\r\n      const oldCallback = options[name];\r\n      options[name] = function callbackInterceptor (res) {\r\n        queue(interceptor[name], res).then((res) => {\r\n          /* eslint-disable no-mixed-operators */\r\n          return isFn(oldCallback) && oldCallback(res) || res\r\n        });\r\n      };\r\n    }\r\n  });\r\n  return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n  const returnValueHooks = [];\r\n  if (Array.isArray(globalInterceptors.returnValue)) {\r\n    returnValueHooks.push(...globalInterceptors.returnValue);\r\n  }\r\n  const interceptor = scopedInterceptors[method];\r\n  if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n    returnValueHooks.push(...interceptor.returnValue);\r\n  }\r\n  returnValueHooks.forEach(hook => {\r\n    returnValue = hook(returnValue) || returnValue;\r\n  });\r\n  return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n  const interceptor = Object.create(null);\r\n  Object.keys(globalInterceptors).forEach(hook => {\r\n    if (hook !== 'returnValue') {\r\n      interceptor[hook] = globalInterceptors[hook].slice();\r\n    }\r\n  });\r\n  const scopedInterceptor = scopedInterceptors[method];\r\n  if (scopedInterceptor) {\r\n    Object.keys(scopedInterceptor).forEach(hook => {\r\n      if (hook !== 'returnValue') {\r\n        interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n      }\r\n    });\r\n  }\r\n  return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n  const interceptor = getApiInterceptorHooks(method);\r\n  if (interceptor && Object.keys(interceptor).length) {\r\n    if (Array.isArray(interceptor.invoke)) {\r\n      const res = queue(interceptor.invoke, options);\r\n      return res.then((options) => {\r\n        return api(wrapperOptions(interceptor, options), ...params)\r\n      })\r\n    } else {\r\n      return api(wrapperOptions(interceptor, options), ...params)\r\n    }\r\n  }\r\n  return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n  returnValue (res) {\r\n    if (!isPromise(res)) {\r\n      return res\r\n    }\r\n    return new Promise((resolve, reject) => {\r\n      res.then(res => {\r\n        if (res[0]) {\r\n          reject(res[0]);\r\n        } else {\r\n          resolve(res[1]);\r\n        }\r\n      });\r\n    })\r\n  }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n  /^\\$|Window$|WindowStyle$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n  return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n  return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n  return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n  return promise.then(data => {\r\n    return [null, data]\r\n  })\r\n    .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n  if (\r\n    isContextApi(name) ||\r\n    isSyncApi(name) ||\r\n    isCallbackApi(name)\r\n  ) {\r\n    return false\r\n  }\r\n  return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n  Promise.prototype.finally = function (callback) {\r\n    const promise = this.constructor;\r\n    return this.then(\r\n      value => promise.resolve(callback()).then(() => value),\r\n      reason => promise.resolve(callback()).then(() => {\r\n        throw reason\r\n      })\r\n    )\r\n  };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n  if (!shouldPromise(name)) {\r\n    return api\r\n  }\r\n  return function promiseApi (options = {}, ...params) {\r\n    if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n      return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n    }\r\n    return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n      invokeApi(name, api, Object.assign({}, options, {\r\n        success: resolve,\r\n        fail: reject\r\n      }), ...params);\r\n    })))\r\n  }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n  const {\r\n    platform,\r\n    pixelRatio,\r\n    windowWidth\r\n  } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n  deviceWidth = windowWidth;\r\n  deviceDPR = pixelRatio;\r\n  isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n  if (deviceWidth === 0) {\r\n    checkDeviceWidth();\r\n  }\r\n\r\n  number = Number(number);\r\n  if (number === 0) {\r\n    return 0\r\n  }\r\n  let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n  if (result < 0) {\r\n    result = -result;\r\n  }\r\n  result = Math.floor(result + EPS);\r\n  if (result === 0) {\r\n    if (deviceDPR === 1 || !isIOS) {\r\n      result = 1;\r\n    } else {\r\n      result = 0.5;\r\n    }\r\n  }\r\n  return number < 0 ? -result : result\r\n}\r\n\r\nfunction getLocale () {\r\n  // 优先使用 $locale\r\n  const app = getApp({\r\n    allowDefault: true\r\n  });\r\n  if (app && app.$vm) {\r\n    return app.$vm.$locale\r\n  }\r\n  return wx.getSystemInfoSync().language || 'zh-Hans'\r\n}\r\n\r\nfunction setLocale (locale) {\r\n  const app = getApp();\r\n  if (!app) {\r\n    return false\r\n  }\r\n  const oldLocale = app.$vm.$locale;\r\n  if (oldLocale !== locale) {\r\n    app.$vm.$locale = locale;\r\n    onLocaleChangeCallbacks.forEach((fn) => fn({\r\n      locale\r\n    }));\r\n    return true\r\n  }\r\n  return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n  if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n    onLocaleChangeCallbacks.push(fn);\r\n  }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n  global.getLocale = getLocale;\r\n}\r\n\r\nconst interceptors = {\r\n  promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n  __proto__: null,\r\n  upx2px: upx2px,\r\n  getLocale: getLocale,\r\n  setLocale: setLocale,\r\n  onLocaleChange: onLocaleChange,\r\n  addInterceptor: addInterceptor,\r\n  removeInterceptor: removeInterceptor,\r\n  interceptors: interceptors\r\n});\r\n\r\nfunction findExistsPageIndex (url) {\r\n  const pages = getCurrentPages();\r\n  let len = pages.length;\r\n  while (len--) {\r\n    const page = pages[len];\r\n    if (page.$page && page.$page.fullPath === url) {\r\n      return len\r\n    }\r\n  }\r\n  return -1\r\n}\r\n\r\nvar redirectTo = {\r\n  name (fromArgs) {\r\n    if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n      return 'navigateBack'\r\n    }\r\n    return 'redirectTo'\r\n  },\r\n  args (fromArgs) {\r\n    if (fromArgs.exists === 'back' && fromArgs.url) {\r\n      const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n      if (existsPageIndex !== -1) {\r\n        const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n        if (delta > 0) {\r\n          fromArgs.delta = delta;\r\n        }\r\n      }\r\n    }\r\n  }\r\n};\r\n\r\nvar previewImage = {\r\n  args (fromArgs) {\r\n    let currentIndex = parseInt(fromArgs.current);\r\n    if (isNaN(currentIndex)) {\r\n      return\r\n    }\r\n    const urls = fromArgs.urls;\r\n    if (!Array.isArray(urls)) {\r\n      return\r\n    }\r\n    const len = urls.length;\r\n    if (!len) {\r\n      return\r\n    }\r\n    if (currentIndex < 0) {\r\n      currentIndex = 0;\r\n    } else if (currentIndex >= len) {\r\n      currentIndex = len - 1;\r\n    }\r\n    if (currentIndex > 0) {\r\n      fromArgs.current = urls[currentIndex];\r\n      fromArgs.urls = urls.filter(\r\n        (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n      );\r\n    } else {\r\n      fromArgs.current = urls[0];\r\n    }\r\n    return {\r\n      indicator: false,\r\n      loop: false\r\n    }\r\n  }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction addUuid (result) {\r\n  deviceId = deviceId || wx.getStorageSync(UUID_KEY);\r\n  if (!deviceId) {\r\n    deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n    wx.setStorage({\r\n      key: UUID_KEY,\r\n      data: deviceId\r\n    });\r\n  }\r\n  result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n  if (result.safeArea) {\r\n    const safeArea = result.safeArea;\r\n    result.safeAreaInsets = {\r\n      top: safeArea.top,\r\n      left: safeArea.left,\r\n      right: result.windowWidth - safeArea.right,\r\n      bottom: result.windowHeight - safeArea.bottom\r\n    };\r\n  }\r\n}\r\n\r\nvar getSystemInfo = {\r\n  returnValue: function (result) {\r\n    addUuid(result);\r\n    addSafeAreaInsets(result);\r\n  }\r\n};\r\n\r\n// import navigateTo from 'uni-helpers/navigate-to'\r\n\r\nconst protocols = {\r\n  redirectTo,\r\n  // navigateTo,  // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP\r\n  previewImage,\r\n  getSystemInfo,\r\n  getSystemInfoSync: getSystemInfo\r\n};\r\nconst todos = [\r\n  'vibrate',\r\n  'preloadPage',\r\n  'unPreloadPage',\r\n  'loadSubPackage'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n  return function (res) {\r\n    return method(processReturnValue(methodName, res, returnValue))\r\n  }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n  if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n    const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n    if (isFn(argsOption)) {\r\n      argsOption = argsOption(fromArgs, toArgs) || {};\r\n    }\r\n    for (const key in fromArgs) {\r\n      if (hasOwn(argsOption, key)) {\r\n        let keyOption = argsOption[key];\r\n        if (isFn(keyOption)) {\r\n          keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n        }\r\n        if (!keyOption) { // 不支持的参数\r\n          console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\r\n        } else if (isStr(keyOption)) { // 重写参数 key\r\n          toArgs[keyOption] = fromArgs[key];\r\n        } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n          toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n        }\r\n      } else if (CALLBACKS.indexOf(key) !== -1) {\r\n        if (isFn(fromArgs[key])) {\r\n          toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n        }\r\n      } else {\r\n        if (!keepFromArgs) {\r\n          toArgs[key] = fromArgs[key];\r\n        }\r\n      }\r\n    }\r\n    return toArgs\r\n  } else if (isFn(fromArgs)) {\r\n    fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n  }\r\n  return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n  if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n    res = protocols.returnValue(methodName, res);\r\n  }\r\n  return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n  if (hasOwn(protocols, methodName)) {\r\n    const protocol = protocols[methodName];\r\n    if (!protocol) { // 暂不支持的 api\r\n      return function () {\r\n        console.error(`Platform '微信小程序' does not support '${methodName}'.`);\r\n      }\r\n    }\r\n    return function (arg1, arg2) { // 目前 api 最多两个参数\r\n      let options = protocol;\r\n      if (isFn(protocol)) {\r\n        options = protocol(arg1);\r\n      }\r\n\r\n      arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n      const args = [arg1];\r\n      if (typeof arg2 !== 'undefined') {\r\n        args.push(arg2);\r\n      }\r\n      if (isFn(options.name)) {\r\n        methodName = options.name(arg1);\r\n      } else if (isStr(options.name)) {\r\n        methodName = options.name;\r\n      }\r\n      const returnValue = wx[methodName].apply(wx, args);\r\n      if (isSyncApi(methodName)) { // 同步 api\r\n        return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n      }\r\n      return returnValue\r\n    }\r\n  }\r\n  return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n  'onTabBarMidButtonTap',\r\n  'subscribePush',\r\n  'unsubscribePush',\r\n  'onPush',\r\n  'offPush',\r\n  'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n  return function todoApi ({\r\n    fail,\r\n    complete\r\n  }) {\r\n    const res = {\r\n      errMsg: `${name}:fail method '${name}' not supported`\r\n    };\r\n    isFn(fail) && fail(res);\r\n    isFn(complete) && complete(res);\r\n  }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n  todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n  oauth: ['weixin'],\r\n  share: ['weixin'],\r\n  payment: ['wxpay'],\r\n  push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n  service,\r\n  success,\r\n  fail,\r\n  complete\r\n}) {\r\n  let res = false;\r\n  if (providers[service]) {\r\n    res = {\r\n      errMsg: 'getProvider:ok',\r\n      service,\r\n      provider: providers[service]\r\n    };\r\n    isFn(success) && success(res);\r\n  } else {\r\n    res = {\r\n      errMsg: 'getProvider:fail service not found'\r\n    };\r\n    isFn(fail) && fail(res);\r\n  }\r\n  isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n  __proto__: null,\r\n  getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n  let Emitter;\r\n  return function getUniEmitter () {\r\n    if (!Emitter) {\r\n      Emitter = new Vue();\r\n    }\r\n    return Emitter\r\n  }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n  return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n  return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n  return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n  return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n  return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n  __proto__: null,\r\n  $on: $on,\r\n  $off: $off,\r\n  $once: $once,\r\n  $emit: $emit\r\n});\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n  __proto__: null\r\n});\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n  return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n  const oldTriggerEvent = mpInstance.triggerEvent;\r\n  mpInstance.triggerEvent = function (event, ...args) {\r\n    return oldTriggerEvent.apply(mpInstance, [customize(event), ...args])\r\n  };\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n  const oldHook = options[name];\r\n  if (!oldHook) {\r\n    options[name] = function () {\r\n      initTriggerEvent(this);\r\n    };\r\n  } else {\r\n    options[name] = function (...args) {\r\n      initTriggerEvent(this);\r\n      return oldHook.apply(this, args)\r\n    };\r\n  }\r\n}\r\nif (!MPPage.__$wrappered) {\r\n  MPPage.__$wrappered = true;\r\n  Page = function (options = {}) {\r\n    initHook('onLoad', options);\r\n    return MPPage(options)\r\n  };\r\n  Page.after = MPPage.after;\r\n\r\n  Component = function (options = {}) {\r\n    initHook('created', options);\r\n    return MPComponent(options)\r\n  };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n  'onPullDownRefresh',\r\n  'onReachBottom',\r\n  'onAddToFavorites',\r\n  'onShareTimeline',\r\n  'onShareAppMessage',\r\n  'onPageScroll',\r\n  'onResize',\r\n  'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n  const mpInstance = vm.$mp[vm.mpType];\r\n  mocks.forEach(mock => {\r\n    if (hasOwn(mpInstance, mock)) {\r\n      vm[mock] = mpInstance[mock];\r\n    }\r\n  });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n  if (!vueOptions) {\r\n    return true\r\n  }\r\n\r\n  if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n    return true\r\n  }\r\n\r\n  vueOptions = vueOptions.default || vueOptions;\r\n\r\n  if (isFn(vueOptions)) {\r\n    if (isFn(vueOptions.extendOptions[hook])) {\r\n      return true\r\n    }\r\n    if (vueOptions.super &&\r\n      vueOptions.super.options &&\r\n      Array.isArray(vueOptions.super.options[hook])) {\r\n      return true\r\n    }\r\n    return false\r\n  }\r\n\r\n  if (isFn(vueOptions[hook])) {\r\n    return true\r\n  }\r\n  const mixins = vueOptions.mixins;\r\n  if (Array.isArray(mixins)) {\r\n    return !!mixins.find(mixin => hasHook(hook, mixin))\r\n  }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n  hooks.forEach(hook => {\r\n    if (hasHook(hook, vueOptions)) {\r\n      mpOptions[hook] = function (args) {\r\n        return this.$vm && this.$vm.__call_hook(hook, args)\r\n      };\r\n    }\r\n  });\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n  vueOptions = vueOptions.default || vueOptions;\r\n  let VueComponent;\r\n  if (isFn(vueOptions)) {\r\n    VueComponent = vueOptions;\r\n  } else {\r\n    VueComponent = Vue.extend(vueOptions);\r\n  }\r\n  vueOptions = VueComponent.options;\r\n  return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n  if (Array.isArray(vueSlots) && vueSlots.length) {\r\n    const $slots = Object.create(null);\r\n    vueSlots.forEach(slotName => {\r\n      $slots[slotName] = true;\r\n    });\r\n    vm.$scopedSlots = vm.$slots = $slots;\r\n  }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n  vueIds = (vueIds || '').split(',');\r\n  const len = vueIds.length;\r\n\r\n  if (len === 1) {\r\n    mpInstance._$vueId = vueIds[0];\r\n  } else if (len === 2) {\r\n    mpInstance._$vueId = vueIds[0];\r\n    mpInstance._$vuePid = vueIds[1];\r\n  }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n  let data = vueOptions.data || {};\r\n  const methods = vueOptions.methods || {};\r\n\r\n  if (typeof data === 'function') {\r\n    try {\r\n      data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n    } catch (e) {\r\n      if (process.env.VUE_APP_DEBUG) {\r\n        console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n      }\r\n    }\r\n  } else {\r\n    try {\r\n      // 对 data 格式化\r\n      data = JSON.parse(JSON.stringify(data));\r\n    } catch (e) {}\r\n  }\r\n\r\n  if (!isPlainObject(data)) {\r\n    data = {};\r\n  }\r\n\r\n  Object.keys(methods).forEach(methodName => {\r\n    if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n      data[methodName] = methods[methodName];\r\n    }\r\n  });\r\n\r\n  return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n  return function observer (newVal, oldVal) {\r\n    if (this.$vm) {\r\n      this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n    }\r\n  }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n  const vueBehaviors = vueOptions.behaviors;\r\n  const vueExtends = vueOptions.extends;\r\n  const vueMixins = vueOptions.mixins;\r\n\r\n  let vueProps = vueOptions.props;\r\n\r\n  if (!vueProps) {\r\n    vueOptions.props = vueProps = [];\r\n  }\r\n\r\n  const behaviors = [];\r\n  if (Array.isArray(vueBehaviors)) {\r\n    vueBehaviors.forEach(behavior => {\r\n      behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n      if (behavior === 'uni://form-field') {\r\n        if (Array.isArray(vueProps)) {\r\n          vueProps.push('name');\r\n          vueProps.push('value');\r\n        } else {\r\n          vueProps.name = {\r\n            type: String,\r\n            default: ''\r\n          };\r\n          vueProps.value = {\r\n            type: [String, Number, Boolean, Array, Object, Date],\r\n            default: ''\r\n          };\r\n        }\r\n      }\r\n    });\r\n  }\r\n  if (isPlainObject(vueExtends) && vueExtends.props) {\r\n    behaviors.push(\r\n      initBehavior({\r\n        properties: initProperties(vueExtends.props, true)\r\n      })\r\n    );\r\n  }\r\n  if (Array.isArray(vueMixins)) {\r\n    vueMixins.forEach(vueMixin => {\r\n      if (isPlainObject(vueMixin) && vueMixin.props) {\r\n        behaviors.push(\r\n          initBehavior({\r\n            properties: initProperties(vueMixin.props, true)\r\n          })\r\n        );\r\n      }\r\n    });\r\n  }\r\n  return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n  // [String]=>String\r\n  if (Array.isArray(type) && type.length === 1) {\r\n    return type[0]\r\n  }\r\n  return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '') {\r\n  const properties = {};\r\n  if (!isBehavior) {\r\n    properties.vueId = {\r\n      type: String,\r\n      value: ''\r\n    };\r\n    // 用于字节跳动小程序模拟抽象节点\r\n    properties.generic = {\r\n      type: Object,\r\n      value: null\r\n    };\r\n    // scopedSlotsCompiler auto\r\n    properties.scopedSlotsCompiler = {\r\n      type: String,\r\n      value: ''\r\n    };\r\n    properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n      type: null,\r\n      value: [],\r\n      observer: function (newVal, oldVal) {\r\n        const $slots = Object.create(null);\r\n        newVal.forEach(slotName => {\r\n          $slots[slotName] = true;\r\n        });\r\n        this.setData({\r\n          $slots\r\n        });\r\n      }\r\n    };\r\n  }\r\n  if (Array.isArray(props)) { // ['title']\r\n    props.forEach(key => {\r\n      properties[key] = {\r\n        type: null,\r\n        observer: createObserver(key)\r\n      };\r\n    });\r\n  } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n    Object.keys(props).forEach(key => {\r\n      const opts = props[key];\r\n      if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n        let value = opts.default;\r\n        if (isFn(value)) {\r\n          value = value();\r\n        }\r\n\r\n        opts.type = parsePropType(key, opts.type);\r\n\r\n        properties[key] = {\r\n          type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n          value,\r\n          observer: createObserver(key)\r\n        };\r\n      } else { // content:String\r\n        const type = parsePropType(key, opts);\r\n        properties[key] = {\r\n          type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n          observer: createObserver(key)\r\n        };\r\n      }\r\n    });\r\n  }\r\n  return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n  // TODO 又得兼容 mpvue 的 mp 对象\r\n  try {\r\n    event.mp = JSON.parse(JSON.stringify(event));\r\n  } catch (e) {}\r\n\r\n  event.stopPropagation = noop;\r\n  event.preventDefault = noop;\r\n\r\n  event.target = event.target || {};\r\n\r\n  if (!hasOwn(event, 'detail')) {\r\n    event.detail = {};\r\n  }\r\n\r\n  if (hasOwn(event, 'markerId')) {\r\n    event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n    event.detail.markerId = event.markerId;\r\n  }\r\n\r\n  if (isPlainObject(event.detail)) {\r\n    event.target = Object.assign({}, event.target, event.detail);\r\n  }\r\n\r\n  return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n  let context = vm;\r\n  dataPathsArray.forEach(dataPathArray => {\r\n    const dataPath = dataPathArray[0];\r\n    const value = dataPathArray[2];\r\n    if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n      const propPath = dataPathArray[1];\r\n      const valuePath = dataPathArray[3];\r\n\r\n      let vFor;\r\n      if (Number.isInteger(dataPath)) {\r\n        vFor = dataPath;\r\n      } else if (!dataPath) {\r\n        vFor = context;\r\n      } else if (typeof dataPath === 'string' && dataPath) {\r\n        if (dataPath.indexOf('#s#') === 0) {\r\n          vFor = dataPath.substr(3);\r\n        } else {\r\n          vFor = vm.__get_value(dataPath, context);\r\n        }\r\n      }\r\n\r\n      if (Number.isInteger(vFor)) {\r\n        context = value;\r\n      } else if (!propPath) {\r\n        context = vFor[value];\r\n      } else {\r\n        if (Array.isArray(vFor)) {\r\n          context = vFor.find(vForItem => {\r\n            return vm.__get_value(propPath, vForItem) === value\r\n          });\r\n        } else if (isPlainObject(vFor)) {\r\n          context = Object.keys(vFor).find(vForKey => {\r\n            return vm.__get_value(propPath, vFor[vForKey]) === value\r\n          });\r\n        } else {\r\n          console.error('v-for 暂不支持循环数据:', vFor);\r\n        }\r\n      }\r\n\r\n      if (valuePath) {\r\n        context = vm.__get_value(valuePath, context);\r\n      }\r\n    }\r\n  });\r\n  return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event) {\r\n  const extraObj = {};\r\n\r\n  if (Array.isArray(extra) && extra.length) {\r\n    /**\r\n     *[\r\n     *    ['data.items', 'data.id', item.data.id],\r\n     *    ['metas', 'id', meta.id]\r\n     *],\r\n     *[\r\n     *    ['data.items', 'data.id', item.data.id],\r\n     *    ['metas', 'id', meta.id]\r\n     *],\r\n     *'test'\r\n     */\r\n    extra.forEach((dataPath, index) => {\r\n      if (typeof dataPath === 'string') {\r\n        if (!dataPath) { // model,prop.sync\r\n          extraObj['$' + index] = vm;\r\n        } else {\r\n          if (dataPath === '$event') { // $event\r\n            extraObj['$' + index] = event;\r\n          } else if (dataPath === 'arguments') {\r\n            if (event.detail && event.detail.__args__) {\r\n              extraObj['$' + index] = event.detail.__args__;\r\n            } else {\r\n              extraObj['$' + index] = [event];\r\n            }\r\n          } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n            extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n          } else {\r\n            extraObj['$' + index] = vm.__get_value(dataPath);\r\n          }\r\n        }\r\n      } else {\r\n        extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n      }\r\n    });\r\n  }\r\n\r\n  return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n  const obj = {};\r\n  for (let i = 1; i < arr.length; i++) {\r\n    const element = arr[i];\r\n    obj[element[0]] = element[1];\r\n  }\r\n  return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n  let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n  if (isCustom) { // 自定义事件\r\n    isCustomMPEvent = event.currentTarget &&\r\n      event.currentTarget.dataset &&\r\n      event.currentTarget.dataset.comType === 'wx';\r\n    if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n      if (isCustomMPEvent) {\r\n        return [event]\r\n      }\r\n      return event.detail.__args__ || event.detail\r\n    }\r\n  }\r\n\r\n  const extraObj = processEventExtra(vm, extra, event);\r\n\r\n  const ret = [];\r\n  args.forEach(arg => {\r\n    if (arg === '$event') {\r\n      if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n        ret.push(event.target.value);\r\n      } else {\r\n        if (isCustom && !isCustomMPEvent) {\r\n          ret.push(event.detail.__args__[0]);\r\n        } else { // wxcomponent 组件或内置组件\r\n          ret.push(event);\r\n        }\r\n      }\r\n    } else {\r\n      if (Array.isArray(arg) && arg[0] === 'o') {\r\n        ret.push(getObjByArray(arg));\r\n      } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n        ret.push(extraObj[arg]);\r\n      } else {\r\n        ret.push(arg);\r\n      }\r\n    }\r\n  });\r\n\r\n  return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n  return (eventType === optType) ||\r\n    (\r\n      optType === 'regionchange' &&\r\n      (\r\n        eventType === 'begin' ||\r\n        eventType === 'end'\r\n      )\r\n    )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n  let $parent = vm.$parent;\r\n  // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n  while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n    $parent = $parent.$parent;\r\n  }\r\n  return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n  event = wrapper$1(event);\r\n\r\n  // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n  const dataset = (event.currentTarget || event.target).dataset;\r\n  if (!dataset) {\r\n    return console.warn('事件信息不存在')\r\n  }\r\n  const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n  if (!eventOpts) {\r\n    return console.warn('事件信息不存在')\r\n  }\r\n\r\n  // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n  const eventType = event.type;\r\n\r\n  const ret = [];\r\n\r\n  eventOpts.forEach(eventOpt => {\r\n    let type = eventOpt[0];\r\n    const eventsArray = eventOpt[1];\r\n\r\n    const isCustom = type.charAt(0) === CUSTOM;\r\n    type = isCustom ? type.slice(1) : type;\r\n    const isOnce = type.charAt(0) === ONCE;\r\n    type = isOnce ? type.slice(1) : type;\r\n\r\n    if (eventsArray && isMatchEventType(eventType, type)) {\r\n      eventsArray.forEach(eventArray => {\r\n        const methodName = eventArray[0];\r\n        if (methodName) {\r\n          let handlerCtx = this.$vm;\r\n          if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n            handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n          }\r\n          if (methodName === '$emit') {\r\n            handlerCtx.$emit.apply(handlerCtx,\r\n              processEventArgs(\r\n                this.$vm,\r\n                event,\r\n                eventArray[1],\r\n                eventArray[2],\r\n                isCustom,\r\n                methodName\r\n              ));\r\n            return\r\n          }\r\n          const handler = handlerCtx[methodName];\r\n          if (!isFn(handler)) {\r\n            throw new Error(` _vm.${methodName} is not a function`)\r\n          }\r\n          if (isOnce) {\r\n            if (handler.once) {\r\n              return\r\n            }\r\n            handler.once = true;\r\n          }\r\n          let params = processEventArgs(\r\n            this.$vm,\r\n            event,\r\n            eventArray[1],\r\n            eventArray[2],\r\n            isCustom,\r\n            methodName\r\n          );\r\n          params = Array.isArray(params) ? params : [];\r\n          // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n          if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n            // eslint-disable-next-line no-sparse-arrays\r\n            params = params.concat([, , , , , , , , , , event]);\r\n          }\r\n          ret.push(handler.apply(handlerCtx, params));\r\n        }\r\n      });\r\n    }\r\n  });\r\n\r\n  if (\r\n    eventType === 'input' &&\r\n    ret.length === 1 &&\r\n    typeof ret[0] !== 'undefined'\r\n  ) {\r\n    return ret[0]\r\n  }\r\n}\r\n\r\nlet locale;\r\n\r\n{\r\n  locale = wx.getSystemInfoSync().language;\r\n}\r\n\r\nconst i18n = initVueI18n(\r\n  locale,\r\n   {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n  beforeCreate () {\r\n    const unwatch = i18n.i18n.watchLocale(() => {\r\n      this.$forceUpdate();\r\n    });\r\n    this.$once('hook:beforeDestroy', function () {\r\n      unwatch();\r\n    });\r\n  },\r\n  methods: {\r\n    $$t (key, values) {\r\n      return t(key, values)\r\n    }\r\n  }\r\n});\r\nconst setLocale$1 = i18n.setLocale;\r\nconst getLocale$1 = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n  const state = Vue.observable({\r\n    locale: locale || i18n.getLocale()\r\n  });\r\n  const localeWatchers = [];\r\n  appVm.$watchLocale = fn => {\r\n    localeWatchers.push(fn);\r\n  };\r\n  Object.defineProperty(appVm, '$locale', {\r\n    get () {\r\n      return state.locale\r\n    },\r\n    set (v) {\r\n      state.locale = v;\r\n      localeWatchers.forEach(watch => watch(v));\r\n    }\r\n  });\r\n}\r\n\r\nconst eventChannels = {};\r\n\r\nconst eventChannelStack = [];\r\n\r\nfunction getEventChannel (id) {\r\n  if (id) {\r\n    const eventChannel = eventChannels[id];\r\n    delete eventChannels[id];\r\n    return eventChannel\r\n  }\r\n  return eventChannelStack.shift()\r\n}\r\n\r\nconst hooks = [\r\n  'onShow',\r\n  'onHide',\r\n  'onError',\r\n  'onPageNotFound',\r\n  'onThemeChange',\r\n  'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel () {\r\n  Vue.prototype.getOpenerEventChannel = function () {\r\n    // 微信小程序使用自身getOpenerEventChannel\r\n    {\r\n      return this.$scope.getOpenerEventChannel()\r\n    }\r\n  };\r\n  const callHook = Vue.prototype.__call_hook;\r\n  Vue.prototype.__call_hook = function (hook, args) {\r\n    if (hook === 'onLoad' && args && args.__id__) {\r\n      this.__eventChannel__ = getEventChannel(args.__id__);\r\n      delete args.__id__;\r\n    }\r\n    return callHook.call(this, hook, args)\r\n  };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n  const center = {};\r\n  const parents = {};\r\n\r\n  Vue.prototype.$hasScopedSlotsParams = function (vueId) {\r\n    const has = center[vueId];\r\n    if (!has) {\r\n      parents[vueId] = this;\r\n      this.$on('hook:destroyed', () => {\r\n        delete parents[vueId];\r\n      });\r\n    }\r\n    return has\r\n  };\r\n\r\n  Vue.prototype.$getScopedSlotsParams = function (vueId, name, key) {\r\n    const data = center[vueId];\r\n    if (data) {\r\n      const object = data[name] || {};\r\n      return key ? object[key] : object\r\n    } else {\r\n      parents[vueId] = this;\r\n      this.$on('hook:destroyed', () => {\r\n        delete parents[vueId];\r\n      });\r\n    }\r\n  };\r\n\r\n  Vue.prototype.$setScopedSlotsParams = function (name, value) {\r\n    const vueIds = this.$options.propsData.vueId;\r\n    if (vueIds) {\r\n      const vueId = vueIds.split(',')[0];\r\n      const object = center[vueId] = center[vueId] || {};\r\n      object[name] = value;\r\n      if (parents[vueId]) {\r\n        parents[vueId].$forceUpdate();\r\n      }\r\n    }\r\n  };\r\n\r\n  Vue.mixin({\r\n    destroyed () {\r\n      const propsData = this.$options.propsData;\r\n      const vueId = propsData && propsData.vueId;\r\n      if (vueId) {\r\n        delete center[vueId];\r\n        delete parents[vueId];\r\n      }\r\n    }\r\n  });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n  mocks,\r\n  initRefs\r\n}) {\r\n  initEventChannel();\r\n  {\r\n    initScopedSlotsParams();\r\n  }\r\n  if (vm.$options.store) {\r\n    Vue.prototype.$store = vm.$options.store;\r\n  }\r\n  uniIdMixin(Vue);\r\n\r\n  Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n  Vue.mixin({\r\n    beforeCreate () {\r\n      if (!this.$options.mpType) {\r\n        return\r\n      }\r\n\r\n      this.mpType = this.$options.mpType;\r\n\r\n      this.$mp = {\r\n        data: {},\r\n        [this.mpType]: this.$options.mpInstance\r\n      };\r\n\r\n      this.$scope = this.$options.mpInstance;\r\n\r\n      delete this.$options.mpType;\r\n      delete this.$options.mpInstance;\r\n      if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n\r\n        const app = getApp();\r\n        if (app.$vm && app.$vm.$i18n) {\r\n          this._i18n = app.$vm.$i18n;\r\n        }\r\n      }\r\n      if (this.mpType !== 'app') {\r\n        initRefs(this);\r\n        initMocks(this, mocks);\r\n      }\r\n    }\r\n  });\r\n\r\n  const appOptions = {\r\n    onLaunch (args) {\r\n      if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n        return\r\n      }\r\n      {\r\n        if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n          console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n        }\r\n      }\r\n\r\n      this.$vm = vm;\r\n\r\n      this.$vm.$mp = {\r\n        app: this\r\n      };\r\n\r\n      this.$vm.$scope = this;\r\n      // vm 上也挂载 globalData\r\n      this.$vm.globalData = this.globalData;\r\n\r\n      this.$vm._isMounted = true;\r\n      this.$vm.__call_hook('mounted', args);\r\n\r\n      this.$vm.__call_hook('onLaunch', args);\r\n    }\r\n  };\r\n\r\n  // 兼容旧版本 globalData\r\n  appOptions.globalData = vm.$options.globalData || {};\r\n  // 将 methods 中的方法挂在 getApp() 中\r\n  const methods = vm.$options.methods;\r\n  if (methods) {\r\n    Object.keys(methods).forEach(name => {\r\n      appOptions[name] = methods[name];\r\n    });\r\n  }\r\n\r\n  initAppLocale(Vue, vm, wx.getSystemInfoSync().language || 'zh-Hans');\r\n\r\n  initHooks(appOptions, hooks);\r\n\r\n  return appOptions\r\n}\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n  const $children = vm.$children;\r\n  // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n  for (let i = $children.length - 1; i >= 0; i--) {\r\n    const childVm = $children[i];\r\n    if (childVm.$scope._$vueId === vuePid) {\r\n      return childVm\r\n    }\r\n  }\r\n  // 反向递归查找\r\n  let parentVm;\r\n  for (let i = $children.length - 1; i >= 0; i--) {\r\n    parentVm = findVmByVueId($children[i], vuePid);\r\n    if (parentVm) {\r\n      return parentVm\r\n    }\r\n  }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n  return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n  return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n  this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n  const components = mpInstance.selectAllComponents(selector);\r\n  components.forEach(component => {\r\n    const ref = component.dataset.ref;\r\n    $refs[ref] = component.$vm || component;\r\n    {\r\n      if (component.dataset.vueGeneric === 'scoped') {\r\n        component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\r\n          selectAllComponents(scopedComponent, selector, $refs);\r\n        });\r\n      }\r\n    }\r\n  });\r\n}\r\n\r\nfunction initRefs (vm) {\r\n  const mpInstance = vm.$scope;\r\n  Object.defineProperty(vm, '$refs', {\r\n    get () {\r\n      const $refs = {};\r\n      selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n      // TODO 暂不考虑 for 中的 scoped\r\n      const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');\r\n      forComponents.forEach(component => {\r\n        const ref = component.dataset.ref;\r\n        if (!$refs[ref]) {\r\n          $refs[ref] = [];\r\n        }\r\n        $refs[ref].push(component.$vm || component);\r\n      });\r\n      return $refs\r\n    }\r\n  });\r\n}\r\n\r\nfunction handleLink (event) {\r\n  const {\r\n    vuePid,\r\n    vueOptions\r\n  } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n  let parentVm;\r\n\r\n  if (vuePid) {\r\n    parentVm = findVmByVueId(this.$vm, vuePid);\r\n  }\r\n\r\n  if (!parentVm) {\r\n    parentVm = this.$vm;\r\n  }\r\n\r\n  vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction parseApp (vm) {\r\n  return parseBaseApp(vm, {\r\n    mocks,\r\n    initRefs\r\n  })\r\n}\r\n\r\nfunction createApp (vm) {\r\n  App(parseApp(vm));\r\n  return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n  .replace(encodeReserveRE, encodeReserveReplacer)\r\n  .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n  const res = obj ? Object.keys(obj).map(key => {\r\n    const val = obj[key];\r\n\r\n    if (val === undefined) {\r\n      return ''\r\n    }\r\n\r\n    if (val === null) {\r\n      return encodeStr(key)\r\n    }\r\n\r\n    if (Array.isArray(val)) {\r\n      const result = [];\r\n      val.forEach(val2 => {\r\n        if (val2 === undefined) {\r\n          return\r\n        }\r\n        if (val2 === null) {\r\n          result.push(encodeStr(key));\r\n        } else {\r\n          result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n        }\r\n      });\r\n      return result.join('&')\r\n    }\r\n\r\n    return encodeStr(key) + '=' + encodeStr(val)\r\n  }).filter(x => x.length > 0).join('&') : null;\r\n  return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n  isPage,\r\n  initRelation\r\n} = {}) {\r\n  const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n  const options = {\r\n    multipleSlots: true,\r\n    addGlobalClass: true,\r\n    ...(vueOptions.options || {})\r\n  };\r\n\r\n  {\r\n    // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n    if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n      Object.assign(options, vueOptions['mp-weixin'].options);\r\n    }\r\n  }\r\n\r\n  const componentOptions = {\r\n    options,\r\n    data: initData(vueOptions, Vue.prototype),\r\n    behaviors: initBehaviors(vueOptions, initBehavior),\r\n    properties: initProperties(vueOptions.props, false, vueOptions.__file),\r\n    lifetimes: {\r\n      attached () {\r\n        const properties = this.properties;\r\n\r\n        const options = {\r\n          mpType: isPage.call(this) ? 'page' : 'component',\r\n          mpInstance: this,\r\n          propsData: properties\r\n        };\r\n\r\n        initVueIds(properties.vueId, this);\r\n\r\n        // 处理父子关系\r\n        initRelation.call(this, {\r\n          vuePid: this._$vuePid,\r\n          vueOptions: options\r\n        });\r\n\r\n        // 初始化 vue 实例\r\n        this.$vm = new VueComponent(options);\r\n\r\n        // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n        initSlots(this.$vm, properties.vueSlots);\r\n\r\n        // 触发首次 setData\r\n        this.$vm.$mount();\r\n      },\r\n      ready () {\r\n        // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n        // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n        if (this.$vm) {\r\n          this.$vm._isMounted = true;\r\n          this.$vm.__call_hook('mounted');\r\n          this.$vm.__call_hook('onReady');\r\n        }\r\n      },\r\n      detached () {\r\n        this.$vm && this.$vm.$destroy();\r\n      }\r\n    },\r\n    pageLifetimes: {\r\n      show (args) {\r\n        this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n      },\r\n      hide () {\r\n        this.$vm && this.$vm.__call_hook('onPageHide');\r\n      },\r\n      resize (size) {\r\n        this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n      }\r\n    },\r\n    methods: {\r\n      __l: handleLink,\r\n      __e: handleEvent\r\n    }\r\n  };\r\n  // externalClasses\r\n  if (vueOptions.externalClasses) {\r\n    componentOptions.externalClasses = vueOptions.externalClasses;\r\n  }\r\n\r\n  if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n    vueOptions.wxsCallMethods.forEach(callMethod => {\r\n      componentOptions.methods[callMethod] = function (args) {\r\n        return this.$vm[callMethod](args)\r\n      };\r\n    });\r\n  }\r\n\r\n  if (isPage) {\r\n    return componentOptions\r\n  }\r\n  return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions) {\r\n  return parseBaseComponent(vueComponentOptions, {\r\n    isPage,\r\n    initRelation\r\n  })\r\n}\r\n\r\nconst hooks$1 = [\r\n  'onShow',\r\n  'onHide',\r\n  'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions, {\r\n  isPage,\r\n  initRelation\r\n}) {\r\n  const pageOptions = parseComponent(vuePageOptions);\r\n\r\n  initHooks(pageOptions.methods, hooks$1, vuePageOptions);\r\n\r\n  pageOptions.methods.onLoad = function (query) {\r\n    this.options = query;\r\n    const copyQuery = Object.assign({}, query);\r\n    delete copyQuery.__id__;\r\n    this.$page = {\r\n      fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n    };\r\n    this.$vm.$mp.query = query; // 兼容 mpvue\r\n    this.$vm.__call_hook('onLoad', query);\r\n  };\r\n\r\n  return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n  return parseBasePage(vuePageOptions, {\r\n    isPage,\r\n    initRelation\r\n  })\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n  {\r\n    return Component(parsePage(vuePageOptions))\r\n  }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n  {\r\n    return Component(parseComponent(vueOptions))\r\n  }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n  const appOptions = parseApp(vm);\r\n  const app = getApp({\r\n    allowDefault: true\r\n  });\r\n  vm.$scope = app;\r\n  const globalData = app.globalData;\r\n  if (globalData) {\r\n    Object.keys(appOptions.globalData).forEach(name => {\r\n      if (!hasOwn(globalData, name)) {\r\n        globalData[name] = appOptions.globalData[name];\r\n      }\r\n    });\r\n  }\r\n  Object.keys(appOptions).forEach(name => {\r\n    if (!hasOwn(app, name)) {\r\n      app[name] = appOptions[name];\r\n    }\r\n  });\r\n  if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n    wx.onAppShow((...args) => {\r\n      vm.__call_hook('onShow', args);\r\n    });\r\n  }\r\n  if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n    wx.onAppHide((...args) => {\r\n      vm.__call_hook('onHide', args);\r\n    });\r\n  }\r\n  if (isFn(appOptions.onLaunch)) {\r\n    const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n    vm.__call_hook('onLaunch', args);\r\n  }\r\n  return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n  const appOptions = parseApp(vm);\r\n  if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n    wx.onAppShow((...args) => {\r\n      appOptions.onShow.apply(vm, args);\r\n    });\r\n  }\r\n  if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n    wx.onAppHide((...args) => {\r\n      appOptions.onHide.apply(vm, args);\r\n    });\r\n  }\r\n  if (isFn(appOptions.onLaunch)) {\r\n    const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n    appOptions.onLaunch.call(vm, args);\r\n  }\r\n  return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n  protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n  const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n    : canIUseApi;\r\n  if (!wx.canIUse(apiName)) {\r\n    protocols[canIUseApi] = false;\r\n  }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n  uni = new Proxy({}, {\r\n    get (target, name) {\r\n      if (hasOwn(target, name)) {\r\n        return target[name]\r\n      }\r\n      if (baseApi[name]) {\r\n        return baseApi[name]\r\n      }\r\n      if (api[name]) {\r\n        return promisify(name, api[name])\r\n      }\r\n      {\r\n        if (extraApi[name]) {\r\n          return promisify(name, extraApi[name])\r\n        }\r\n        if (todoApis[name]) {\r\n          return promisify(name, todoApis[name])\r\n        }\r\n      }\r\n      if (eventApi[name]) {\r\n        return eventApi[name]\r\n      }\r\n      if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {\r\n        return\r\n      }\r\n      return promisify(name, wrapper(name, wx[name]))\r\n    },\r\n    set (target, name, value) {\r\n      target[name] = value;\r\n      return true\r\n    }\r\n  });\r\n} else {\r\n  Object.keys(baseApi).forEach(name => {\r\n    uni[name] = baseApi[name];\r\n  });\r\n\r\n  {\r\n    Object.keys(todoApis).forEach(name => {\r\n      uni[name] = promisify(name, todoApis[name]);\r\n    });\r\n    Object.keys(extraApi).forEach(name => {\r\n      uni[name] = promisify(name, todoApis[name]);\r\n    });\r\n  }\r\n\r\n  Object.keys(eventApi).forEach(name => {\r\n    uni[name] = eventApi[name];\r\n  });\r\n\r\n  Object.keys(api).forEach(name => {\r\n    uni[name] = promisify(name, api[name]);\r\n  });\r\n\r\n  Object.keys(wx).forEach(name => {\r\n    if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n      uni[name] = promisify(name, wrapper(name, wx[name]));\r\n    }\r\n  });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\nwx.createSubpackageApp = createSubpackageApp;\r\nwx.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*!\n * Vue.js v2.6.11\n * (c) 2014-2021 Evan You\n * Released under the MIT License.\n */\n/*  */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n  return v === undefined || v === null\n}\n\nfunction isDef (v) {\n  return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n  return v === true\n}\n\nfunction isFalse (v) {\n  return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n  return (\n    typeof value === 'string' ||\n    typeof value === 'number' ||\n    // $flow-disable-line\n    typeof value === 'symbol' ||\n    typeof value === 'boolean'\n  )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n  return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n  return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n  return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n  var n = parseFloat(String(val));\n  return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n  return (\n    isDef(val) &&\n    typeof val.then === 'function' &&\n    typeof val.catch === 'function'\n  )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n  return val == null\n    ? ''\n    : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n      ? JSON.stringify(val, null, 2)\n      : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n  var n = parseFloat(val);\n  return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n  str,\n  expectsLowerCase\n) {\n  var map = Object.create(null);\n  var list = str.split(',');\n  for (var i = 0; i < list.length; i++) {\n    map[list[i]] = true;\n  }\n  return expectsLowerCase\n    ? function (val) { return map[val.toLowerCase()]; }\n    : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n  if (arr.length) {\n    var index = arr.indexOf(item);\n    if (index > -1) {\n      return arr.splice(index, 1)\n    }\n  }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n  return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n  var cache = Object.create(null);\n  return (function cachedFn (str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str))\n  })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n  return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n  return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n  return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n  function boundFn (a) {\n    var l = arguments.length;\n    return l\n      ? l > 1\n        ? fn.apply(ctx, arguments)\n        : fn.call(ctx, a)\n      : fn.call(ctx)\n  }\n\n  boundFn._length = fn.length;\n  return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n  return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n  ? nativeBind\n  : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n  start = start || 0;\n  var i = list.length - start;\n  var ret = new Array(i);\n  while (i--) {\n    ret[i] = list[i + start];\n  }\n  return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n  for (var key in _from) {\n    to[key] = _from[key];\n  }\n  return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n  var res = {};\n  for (var i = 0; i < arr.length; i++) {\n    if (arr[i]) {\n      extend(res, arr[i]);\n    }\n  }\n  return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n  if (a === b) { return true }\n  var isObjectA = isObject(a);\n  var isObjectB = isObject(b);\n  if (isObjectA && isObjectB) {\n    try {\n      var isArrayA = Array.isArray(a);\n      var isArrayB = Array.isArray(b);\n      if (isArrayA && isArrayB) {\n        return a.length === b.length && a.every(function (e, i) {\n          return looseEqual(e, b[i])\n        })\n      } else if (a instanceof Date && b instanceof Date) {\n        return a.getTime() === b.getTime()\n      } else if (!isArrayA && !isArrayB) {\n        var keysA = Object.keys(a);\n        var keysB = Object.keys(b);\n        return keysA.length === keysB.length && keysA.every(function (key) {\n          return looseEqual(a[key], b[key])\n        })\n      } else {\n        /* istanbul ignore next */\n        return false\n      }\n    } catch (e) {\n      /* istanbul ignore next */\n      return false\n    }\n  } else if (!isObjectA && !isObjectB) {\n    return String(a) === String(b)\n  } else {\n    return false\n  }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n  for (var i = 0; i < arr.length; i++) {\n    if (looseEqual(arr[i], val)) { return i }\n  }\n  return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n  var called = false;\n  return function () {\n    if (!called) {\n      called = true;\n      fn.apply(this, arguments);\n    }\n  }\n}\n\nvar ASSET_TYPES = [\n  'component',\n  'directive',\n  'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n  'beforeCreate',\n  'created',\n  'beforeMount',\n  'mounted',\n  'beforeUpdate',\n  'updated',\n  'beforeDestroy',\n  'destroyed',\n  'activated',\n  'deactivated',\n  'errorCaptured',\n  'serverPrefetch'\n];\n\n/*  */\n\n\n\nvar config = ({\n  /**\n   * Option merge strategies (used in core/util/options)\n   */\n  // $flow-disable-line\n  optionMergeStrategies: Object.create(null),\n\n  /**\n   * Whether to suppress warnings.\n   */\n  silent: false,\n\n  /**\n   * Show production mode tip message on boot?\n   */\n  productionTip: process.env.NODE_ENV !== 'production',\n\n  /**\n   * Whether to enable devtools\n   */\n  devtools: process.env.NODE_ENV !== 'production',\n\n  /**\n   * Whether to record perf\n   */\n  performance: false,\n\n  /**\n   * Error handler for watcher errors\n   */\n  errorHandler: null,\n\n  /**\n   * Warn handler for watcher warns\n   */\n  warnHandler: null,\n\n  /**\n   * Ignore certain custom elements\n   */\n  ignoredElements: [],\n\n  /**\n   * Custom user key aliases for v-on\n   */\n  // $flow-disable-line\n  keyCodes: Object.create(null),\n\n  /**\n   * Check if a tag is reserved so that it cannot be registered as a\n   * component. This is platform-dependent and may be overwritten.\n   */\n  isReservedTag: no,\n\n  /**\n   * Check if an attribute is reserved so that it cannot be used as a component\n   * prop. This is platform-dependent and may be overwritten.\n   */\n  isReservedAttr: no,\n\n  /**\n   * Check if a tag is an unknown element.\n   * Platform-dependent.\n   */\n  isUnknownElement: no,\n\n  /**\n   * Get the namespace of an element\n   */\n  getTagNamespace: noop,\n\n  /**\n   * Parse the real tag name for the specific platform.\n   */\n  parsePlatformTagName: identity,\n\n  /**\n   * Check if an attribute must be bound using property, e.g. value\n   * Platform-dependent.\n   */\n  mustUseProp: no,\n\n  /**\n   * Perform updates asynchronously. Intended to be used by Vue Test Utils\n   * This will significantly reduce performance if set to false.\n   */\n  async: true,\n\n  /**\n   * Exposed for legacy reasons\n   */\n  _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/*  */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n  var c = (str + '').charCodeAt(0);\n  return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n  Object.defineProperty(obj, key, {\n    value: val,\n    enumerable: !!enumerable,\n    writable: true,\n    configurable: true\n  });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n  if (bailRE.test(path)) {\n    return\n  }\n  var segments = path.split('.');\n  return function (obj) {\n    for (var i = 0; i < segments.length; i++) {\n      if (!obj) { return }\n      obj = obj[segments[i]];\n    }\n    return obj\n  }\n}\n\n/*  */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n  try {\n    var opts = {};\n    Object.defineProperty(opts, 'passive', ({\n      get: function get () {\n      }\n    })); // https://github.com/facebook/flow/issues/285\n    window.addEventListener('test-passive', null, opts);\n  } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n  if (_isServer === undefined) {\n    /* istanbul ignore if */\n    if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n      // detect presence of vue-server-renderer and avoid\n      // Webpack shimming the process\n      _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n    } else {\n      _isServer = false;\n    }\n  }\n  return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n  return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n  typeof Symbol !== 'undefined' && isNative(Symbol) &&\n  typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n  // use native Set when available.\n  _Set = Set;\n} else {\n  // a non-standard Set polyfill that only works with primitive keys.\n  _Set = /*@__PURE__*/(function () {\n    function Set () {\n      this.set = Object.create(null);\n    }\n    Set.prototype.has = function has (key) {\n      return this.set[key] === true\n    };\n    Set.prototype.add = function add (key) {\n      this.set[key] = true;\n    };\n    Set.prototype.clear = function clear () {\n      this.set = Object.create(null);\n    };\n\n    return Set;\n  }());\n}\n\n/*  */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n  var hasConsole = typeof console !== 'undefined';\n  var classifyRE = /(?:^|[-_])(\\w)/g;\n  var classify = function (str) { return str\n    .replace(classifyRE, function (c) { return c.toUpperCase(); })\n    .replace(/[-_]/g, ''); };\n\n  warn = function (msg, vm) {\n    var trace = vm ? generateComponentTrace(vm) : '';\n\n    if (config.warnHandler) {\n      config.warnHandler.call(null, msg, vm, trace);\n    } else if (hasConsole && (!config.silent)) {\n      console.error((\"[Vue warn]: \" + msg + trace));\n    }\n  };\n\n  tip = function (msg, vm) {\n    if (hasConsole && (!config.silent)) {\n      console.warn(\"[Vue tip]: \" + msg + (\n        vm ? generateComponentTrace(vm) : ''\n      ));\n    }\n  };\n\n  formatComponentName = function (vm, includeFile) {\n    if (vm.$root === vm) {\n      if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n        return ('') + vm.$options.__file\n      }\n      return '<Root>'\n    }\n    var options = typeof vm === 'function' && vm.cid != null\n      ? vm.options\n      : vm._isVue\n        ? vm.$options || vm.constructor.options\n        : vm;\n    var name = options.name || options._componentTag;\n    var file = options.__file;\n    if (!name && file) {\n      var match = file.match(/([^/\\\\]+)\\.vue$/);\n      name = match && match[1];\n    }\n\n    return (\n      (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n      (file && includeFile !== false ? (\" at \" + file) : '')\n    )\n  };\n\n  var repeat = function (str, n) {\n    var res = '';\n    while (n) {\n      if (n % 2 === 1) { res += str; }\n      if (n > 1) { str += str; }\n      n >>= 1;\n    }\n    return res\n  };\n\n  generateComponentTrace = function (vm) {\n    if (vm._isVue && vm.$parent) {\n      var tree = [];\n      var currentRecursiveSequence = 0;\n      while (vm && vm.$options.name !== 'PageBody') {\n        if (tree.length > 0) {\n          var last = tree[tree.length - 1];\n          if (last.constructor === vm.constructor) {\n            currentRecursiveSequence++;\n            vm = vm.$parent;\n            continue\n          } else if (currentRecursiveSequence > 0) {\n            tree[tree.length - 1] = [last, currentRecursiveSequence];\n            currentRecursiveSequence = 0;\n          }\n        }\n        !vm.$options.isReserved && tree.push(vm);\n        vm = vm.$parent;\n      }\n      return '\\n\\nfound in\\n\\n' + tree\n        .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n            ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n            : formatComponentName(vm))); })\n        .join('\\n')\n    } else {\n      return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n    }\n  };\n}\n\n/*  */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n  this.id = uid++;\n  this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n  this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n  remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n  if (Dep.SharedObject.target) {\n    Dep.SharedObject.target.addDep(this);\n  }\n};\n\nDep.prototype.notify = function notify () {\n  // stabilize the subscriber list first\n  var subs = this.subs.slice();\n  if (process.env.NODE_ENV !== 'production' && !config.async) {\n    // subs aren't sorted in scheduler if not running async\n    // we need to sort them now to make sure they fire in correct\n    // order\n    subs.sort(function (a, b) { return a.id - b.id; });\n  }\n  for (var i = 0, l = subs.length; i < l; i++) {\n    subs[i].update();\n  }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n  Dep.SharedObject.targetStack.push(target);\n  Dep.SharedObject.target = target;\n  Dep.target = target;\n}\n\nfunction popTarget () {\n  Dep.SharedObject.targetStack.pop();\n  Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n  Dep.target = Dep.SharedObject.target;\n}\n\n/*  */\n\nvar VNode = function VNode (\n  tag,\n  data,\n  children,\n  text,\n  elm,\n  context,\n  componentOptions,\n  asyncFactory\n) {\n  this.tag = tag;\n  this.data = data;\n  this.children = children;\n  this.text = text;\n  this.elm = elm;\n  this.ns = undefined;\n  this.context = context;\n  this.fnContext = undefined;\n  this.fnOptions = undefined;\n  this.fnScopeId = undefined;\n  this.key = data && data.key;\n  this.componentOptions = componentOptions;\n  this.componentInstance = undefined;\n  this.parent = undefined;\n  this.raw = false;\n  this.isStatic = false;\n  this.isRootInsert = true;\n  this.isComment = false;\n  this.isCloned = false;\n  this.isOnce = false;\n  this.asyncFactory = asyncFactory;\n  this.asyncMeta = undefined;\n  this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n  return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n  if ( text === void 0 ) text = '';\n\n  var node = new VNode();\n  node.text = text;\n  node.isComment = true;\n  return node\n};\n\nfunction createTextVNode (val) {\n  return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n  var cloned = new VNode(\n    vnode.tag,\n    vnode.data,\n    // #7975\n    // clone children array to avoid mutating original in case of cloning\n    // a child.\n    vnode.children && vnode.children.slice(),\n    vnode.text,\n    vnode.elm,\n    vnode.context,\n    vnode.componentOptions,\n    vnode.asyncFactory\n  );\n  cloned.ns = vnode.ns;\n  cloned.isStatic = vnode.isStatic;\n  cloned.key = vnode.key;\n  cloned.isComment = vnode.isComment;\n  cloned.fnContext = vnode.fnContext;\n  cloned.fnOptions = vnode.fnOptions;\n  cloned.fnScopeId = vnode.fnScopeId;\n  cloned.asyncMeta = vnode.asyncMeta;\n  cloned.isCloned = true;\n  return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n  'push',\n  'pop',\n  'shift',\n  'unshift',\n  'splice',\n  'sort',\n  'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n  // cache original method\n  var original = arrayProto[method];\n  def(arrayMethods, method, function mutator () {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    var result = original.apply(this, args);\n    var ob = this.__ob__;\n    var inserted;\n    switch (method) {\n      case 'push':\n      case 'unshift':\n        inserted = args;\n        break\n      case 'splice':\n        inserted = args.slice(2);\n        break\n    }\n    if (inserted) { ob.observeArray(inserted); }\n    // notify change\n    ob.dep.notify();\n    return result\n  });\n});\n\n/*  */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n  shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n  this.value = value;\n  this.dep = new Dep();\n  this.vmCount = 0;\n  def(value, '__ob__', this);\n  if (Array.isArray(value)) {\n    if (hasProto) {\n      {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n        if(value.push !== value.__proto__.push){\n          copyAugment(value, arrayMethods, arrayKeys);\n        } else {\n          protoAugment(value, arrayMethods);\n        }\n      }\n    } else {\n      copyAugment(value, arrayMethods, arrayKeys);\n    }\n    this.observeArray(value);\n  } else {\n    this.walk(value);\n  }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n  var keys = Object.keys(obj);\n  for (var i = 0; i < keys.length; i++) {\n    defineReactive$$1(obj, keys[i]);\n  }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n  for (var i = 0, l = items.length; i < l; i++) {\n    observe(items[i]);\n  }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n  /* eslint-disable no-proto */\n  target.__proto__ = src;\n  /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n  for (var i = 0, l = keys.length; i < l; i++) {\n    var key = keys[i];\n    def(target, key, src[key]);\n  }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n  if (!isObject(value) || value instanceof VNode) {\n    return\n  }\n  var ob;\n  if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n    ob = value.__ob__;\n  } else if (\n    shouldObserve &&\n    !isServerRendering() &&\n    (Array.isArray(value) || isPlainObject(value)) &&\n    Object.isExtensible(value) &&\n    !value._isVue\n  ) {\n    ob = new Observer(value);\n  }\n  if (asRootData && ob) {\n    ob.vmCount++;\n  }\n  return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n  obj,\n  key,\n  val,\n  customSetter,\n  shallow\n) {\n  var dep = new Dep();\n\n  var property = Object.getOwnPropertyDescriptor(obj, key);\n  if (property && property.configurable === false) {\n    return\n  }\n\n  // cater for pre-defined getter/setters\n  var getter = property && property.get;\n  var setter = property && property.set;\n  if ((!getter || setter) && arguments.length === 2) {\n    val = obj[key];\n  }\n\n  var childOb = !shallow && observe(val);\n  Object.defineProperty(obj, key, {\n    enumerable: true,\n    configurable: true,\n    get: function reactiveGetter () {\n      var value = getter ? getter.call(obj) : val;\n      if (Dep.SharedObject.target) { // fixed by xxxxxx\n        dep.depend();\n        if (childOb) {\n          childOb.dep.depend();\n          if (Array.isArray(value)) {\n            dependArray(value);\n          }\n        }\n      }\n      return value\n    },\n    set: function reactiveSetter (newVal) {\n      var value = getter ? getter.call(obj) : val;\n      /* eslint-disable no-self-compare */\n      if (newVal === value || (newVal !== newVal && value !== value)) {\n        return\n      }\n      /* eslint-enable no-self-compare */\n      if (process.env.NODE_ENV !== 'production' && customSetter) {\n        customSetter();\n      }\n      // #7981: for accessor properties without setter\n      if (getter && !setter) { return }\n      if (setter) {\n        setter.call(obj, newVal);\n      } else {\n        val = newVal;\n      }\n      childOb = !shallow && observe(newVal);\n      dep.notify();\n    }\n  });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n  if (process.env.NODE_ENV !== 'production' &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.length = Math.max(target.length, key);\n    target.splice(key, 1, val);\n    return val\n  }\n  if (key in target && !(key in Object.prototype)) {\n    target[key] = val;\n    return val\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      'Avoid adding reactive properties to a Vue instance or its root $data ' +\n      'at runtime - declare it upfront in the data option.'\n    );\n    return val\n  }\n  if (!ob) {\n    target[key] = val;\n    return val\n  }\n  defineReactive$$1(ob.value, key, val);\n  ob.dep.notify();\n  return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n  if (process.env.NODE_ENV !== 'production' &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.splice(key, 1);\n    return\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      'Avoid deleting properties on a Vue instance or its root $data ' +\n      '- just set it to null.'\n    );\n    return\n  }\n  if (!hasOwn(target, key)) {\n    return\n  }\n  delete target[key];\n  if (!ob) {\n    return\n  }\n  ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n  for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n    e = value[i];\n    e && e.__ob__ && e.__ob__.dep.depend();\n    if (Array.isArray(e)) {\n      dependArray(e);\n    }\n  }\n}\n\n/*  */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n  strats.el = strats.propsData = function (parent, child, vm, key) {\n    if (!vm) {\n      warn(\n        \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n        'creation with the `new` keyword.'\n      );\n    }\n    return defaultStrat(parent, child)\n  };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n  if (!from) { return to }\n  var key, toVal, fromVal;\n\n  var keys = hasSymbol\n    ? Reflect.ownKeys(from)\n    : Object.keys(from);\n\n  for (var i = 0; i < keys.length; i++) {\n    key = keys[i];\n    // in case the object is already observed...\n    if (key === '__ob__') { continue }\n    toVal = to[key];\n    fromVal = from[key];\n    if (!hasOwn(to, key)) {\n      set(to, key, fromVal);\n    } else if (\n      toVal !== fromVal &&\n      isPlainObject(toVal) &&\n      isPlainObject(fromVal)\n    ) {\n      mergeData(toVal, fromVal);\n    }\n  }\n  return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    // in a Vue.extend merge, both should be functions\n    if (!childVal) {\n      return parentVal\n    }\n    if (!parentVal) {\n      return childVal\n    }\n    // when parentVal & childVal are both present,\n    // we need to return a function that returns the\n    // merged result of both functions... no need to\n    // check if parentVal is a function here because\n    // it has to be a function to pass previous merges.\n    return function mergedDataFn () {\n      return mergeData(\n        typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n        typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n      )\n    }\n  } else {\n    return function mergedInstanceDataFn () {\n      // instance merge\n      var instanceData = typeof childVal === 'function'\n        ? childVal.call(vm, vm)\n        : childVal;\n      var defaultData = typeof parentVal === 'function'\n        ? parentVal.call(vm, vm)\n        : parentVal;\n      if (instanceData) {\n        return mergeData(instanceData, defaultData)\n      } else {\n        return defaultData\n      }\n    }\n  }\n}\n\nstrats.data = function (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    if (childVal && typeof childVal !== 'function') {\n      process.env.NODE_ENV !== 'production' && warn(\n        'The \"data\" option should be a function ' +\n        'that returns a per-instance value in component ' +\n        'definitions.',\n        vm\n      );\n\n      return parentVal\n    }\n    return mergeDataOrFn(parentVal, childVal)\n  }\n\n  return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n  parentVal,\n  childVal\n) {\n  var res = childVal\n    ? parentVal\n      ? parentVal.concat(childVal)\n      : Array.isArray(childVal)\n        ? childVal\n        : [childVal]\n    : parentVal;\n  return res\n    ? dedupeHooks(res)\n    : res\n}\n\nfunction dedupeHooks (hooks) {\n  var res = [];\n  for (var i = 0; i < hooks.length; i++) {\n    if (res.indexOf(hooks[i]) === -1) {\n      res.push(hooks[i]);\n    }\n  }\n  return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n  strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  var res = Object.create(parentVal || null);\n  if (childVal) {\n    process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n    return extend(res, childVal)\n  } else {\n    return res\n  }\n}\n\nASSET_TYPES.forEach(function (type) {\n  strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  // work around Firefox's Object.prototype.watch...\n  if (parentVal === nativeWatch) { parentVal = undefined; }\n  if (childVal === nativeWatch) { childVal = undefined; }\n  /* istanbul ignore if */\n  if (!childVal) { return Object.create(parentVal || null) }\n  if (process.env.NODE_ENV !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = {};\n  extend(ret, parentVal);\n  for (var key$1 in childVal) {\n    var parent = ret[key$1];\n    var child = childVal[key$1];\n    if (parent && !Array.isArray(parent)) {\n      parent = [parent];\n    }\n    ret[key$1] = parent\n      ? parent.concat(child)\n      : Array.isArray(child) ? child : [child];\n  }\n  return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  if (childVal && process.env.NODE_ENV !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = Object.create(null);\n  extend(ret, parentVal);\n  if (childVal) { extend(ret, childVal); }\n  return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n  return childVal === undefined\n    ? parentVal\n    : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n  for (var key in options.components) {\n    validateComponentName(key);\n  }\n}\n\nfunction validateComponentName (name) {\n  if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n    warn(\n      'Invalid component name: \"' + name + '\". Component names ' +\n      'should conform to valid custom element name in html5 specification.'\n    );\n  }\n  if (isBuiltInTag(name) || config.isReservedTag(name)) {\n    warn(\n      'Do not use built-in or reserved HTML elements as component ' +\n      'id: ' + name\n    );\n  }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n  var props = options.props;\n  if (!props) { return }\n  var res = {};\n  var i, val, name;\n  if (Array.isArray(props)) {\n    i = props.length;\n    while (i--) {\n      val = props[i];\n      if (typeof val === 'string') {\n        name = camelize(val);\n        res[name] = { type: null };\n      } else if (process.env.NODE_ENV !== 'production') {\n        warn('props must be strings when using array syntax.');\n      }\n    }\n  } else if (isPlainObject(props)) {\n    for (var key in props) {\n      val = props[key];\n      name = camelize(key);\n      res[name] = isPlainObject(val)\n        ? val\n        : { type: val };\n    }\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn(\n      \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(props)) + \".\",\n      vm\n    );\n  }\n  options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n  var inject = options.inject;\n  if (!inject) { return }\n  var normalized = options.inject = {};\n  if (Array.isArray(inject)) {\n    for (var i = 0; i < inject.length; i++) {\n      normalized[inject[i]] = { from: inject[i] };\n    }\n  } else if (isPlainObject(inject)) {\n    for (var key in inject) {\n      var val = inject[key];\n      normalized[key] = isPlainObject(val)\n        ? extend({ from: key }, val)\n        : { from: val };\n    }\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn(\n      \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(inject)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n  var dirs = options.directives;\n  if (dirs) {\n    for (var key in dirs) {\n      var def$$1 = dirs[key];\n      if (typeof def$$1 === 'function') {\n        dirs[key] = { bind: def$$1, update: def$$1 };\n      }\n    }\n  }\n}\n\nfunction assertObjectType (name, value, vm) {\n  if (!isPlainObject(value)) {\n    warn(\n      \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n      \"but got \" + (toRawType(value)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n  parent,\n  child,\n  vm\n) {\n  if (process.env.NODE_ENV !== 'production') {\n    checkComponents(child);\n  }\n\n  if (typeof child === 'function') {\n    child = child.options;\n  }\n\n  normalizeProps(child, vm);\n  normalizeInject(child, vm);\n  normalizeDirectives(child);\n\n  // Apply extends and mixins on the child options,\n  // but only if it is a raw options object that isn't\n  // the result of another mergeOptions call.\n  // Only merged options has the _base property.\n  if (!child._base) {\n    if (child.extends) {\n      parent = mergeOptions(parent, child.extends, vm);\n    }\n    if (child.mixins) {\n      for (var i = 0, l = child.mixins.length; i < l; i++) {\n        parent = mergeOptions(parent, child.mixins[i], vm);\n      }\n    }\n  }\n\n  var options = {};\n  var key;\n  for (key in parent) {\n    mergeField(key);\n  }\n  for (key in child) {\n    if (!hasOwn(parent, key)) {\n      mergeField(key);\n    }\n  }\n  function mergeField (key) {\n    var strat = strats[key] || defaultStrat;\n    options[key] = strat(parent[key], child[key], vm, key);\n  }\n  return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n  options,\n  type,\n  id,\n  warnMissing\n) {\n  /* istanbul ignore if */\n  if (typeof id !== 'string') {\n    return\n  }\n  var assets = options[type];\n  // check local registration variations first\n  if (hasOwn(assets, id)) { return assets[id] }\n  var camelizedId = camelize(id);\n  if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n  var PascalCaseId = capitalize(camelizedId);\n  if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n  // fallback to prototype chain\n  var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n  if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n    warn(\n      'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n      options\n    );\n  }\n  return res\n}\n\n/*  */\n\n\n\nfunction validateProp (\n  key,\n  propOptions,\n  propsData,\n  vm\n) {\n  var prop = propOptions[key];\n  var absent = !hasOwn(propsData, key);\n  var value = propsData[key];\n  // boolean casting\n  var booleanIndex = getTypeIndex(Boolean, prop.type);\n  if (booleanIndex > -1) {\n    if (absent && !hasOwn(prop, 'default')) {\n      value = false;\n    } else if (value === '' || value === hyphenate(key)) {\n      // only cast empty string / same name to boolean if\n      // boolean has higher priority\n      var stringIndex = getTypeIndex(String, prop.type);\n      if (stringIndex < 0 || booleanIndex < stringIndex) {\n        value = true;\n      }\n    }\n  }\n  // check default value\n  if (value === undefined) {\n    value = getPropDefaultValue(vm, prop, key);\n    // since the default value is a fresh copy,\n    // make sure to observe it.\n    var prevShouldObserve = shouldObserve;\n    toggleObserving(true);\n    observe(value);\n    toggleObserving(prevShouldObserve);\n  }\n  if (\n    process.env.NODE_ENV !== 'production' &&\n    // skip validation for weex recycle-list child component props\n    !(false)\n  ) {\n    assertProp(prop, key, value, vm, absent);\n  }\n  return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n  // no default, return undefined\n  if (!hasOwn(prop, 'default')) {\n    return undefined\n  }\n  var def = prop.default;\n  // warn against non-factory defaults for Object & Array\n  if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n    warn(\n      'Invalid default value for prop \"' + key + '\": ' +\n      'Props with type Object/Array must use a factory function ' +\n      'to return the default value.',\n      vm\n    );\n  }\n  // the raw prop value was also undefined from previous render,\n  // return previous default value to avoid unnecessary watcher trigger\n  if (vm && vm.$options.propsData &&\n    vm.$options.propsData[key] === undefined &&\n    vm._props[key] !== undefined\n  ) {\n    return vm._props[key]\n  }\n  // call factory function for non-Function types\n  // a value is Function if its prototype is function even across different execution context\n  return typeof def === 'function' && getType(prop.type) !== 'Function'\n    ? def.call(vm)\n    : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n  prop,\n  name,\n  value,\n  vm,\n  absent\n) {\n  if (prop.required && absent) {\n    warn(\n      'Missing required prop: \"' + name + '\"',\n      vm\n    );\n    return\n  }\n  if (value == null && !prop.required) {\n    return\n  }\n  var type = prop.type;\n  var valid = !type || type === true;\n  var expectedTypes = [];\n  if (type) {\n    if (!Array.isArray(type)) {\n      type = [type];\n    }\n    for (var i = 0; i < type.length && !valid; i++) {\n      var assertedType = assertType(value, type[i]);\n      expectedTypes.push(assertedType.expectedType || '');\n      valid = assertedType.valid;\n    }\n  }\n\n  if (!valid) {\n    warn(\n      getInvalidTypeMessage(name, value, expectedTypes),\n      vm\n    );\n    return\n  }\n  var validator = prop.validator;\n  if (validator) {\n    if (!validator(value)) {\n      warn(\n        'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n        vm\n      );\n    }\n  }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n  var valid;\n  var expectedType = getType(type);\n  if (simpleCheckRE.test(expectedType)) {\n    var t = typeof value;\n    valid = t === expectedType.toLowerCase();\n    // for primitive wrapper objects\n    if (!valid && t === 'object') {\n      valid = value instanceof type;\n    }\n  } else if (expectedType === 'Object') {\n    valid = isPlainObject(value);\n  } else if (expectedType === 'Array') {\n    valid = Array.isArray(value);\n  } else {\n    valid = value instanceof type;\n  }\n  return {\n    valid: valid,\n    expectedType: expectedType\n  }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n  var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n  return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n  return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n  if (!Array.isArray(expectedTypes)) {\n    return isSameType(expectedTypes, type) ? 0 : -1\n  }\n  for (var i = 0, len = expectedTypes.length; i < len; i++) {\n    if (isSameType(expectedTypes[i], type)) {\n      return i\n    }\n  }\n  return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n  var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n    \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n  var expectedType = expectedTypes[0];\n  var receivedType = toRawType(value);\n  var expectedValue = styleValue(value, expectedType);\n  var receivedValue = styleValue(value, receivedType);\n  // check if we need to specify expected value\n  if (expectedTypes.length === 1 &&\n      isExplicable(expectedType) &&\n      !isBoolean(expectedType, receivedType)) {\n    message += \" with value \" + expectedValue;\n  }\n  message += \", got \" + receivedType + \" \";\n  // check if we need to specify received value\n  if (isExplicable(receivedType)) {\n    message += \"with value \" + receivedValue + \".\";\n  }\n  return message\n}\n\nfunction styleValue (value, type) {\n  if (type === 'String') {\n    return (\"\\\"\" + value + \"\\\"\")\n  } else if (type === 'Number') {\n    return (\"\" + (Number(value)))\n  } else {\n    return (\"\" + value)\n  }\n}\n\nfunction isExplicable (value) {\n  var explicitTypes = ['string', 'number', 'boolean'];\n  return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n  var args = [], len = arguments.length;\n  while ( len-- ) args[ len ] = arguments[ len ];\n\n  return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/*  */\n\nfunction handleError (err, vm, info) {\n  // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n  // See: https://github.com/vuejs/vuex/issues/1505\n  pushTarget();\n  try {\n    if (vm) {\n      var cur = vm;\n      while ((cur = cur.$parent)) {\n        var hooks = cur.$options.errorCaptured;\n        if (hooks) {\n          for (var i = 0; i < hooks.length; i++) {\n            try {\n              var capture = hooks[i].call(cur, err, vm, info) === false;\n              if (capture) { return }\n            } catch (e) {\n              globalHandleError(e, cur, 'errorCaptured hook');\n            }\n          }\n        }\n      }\n    }\n    globalHandleError(err, vm, info);\n  } finally {\n    popTarget();\n  }\n}\n\nfunction invokeWithErrorHandling (\n  handler,\n  context,\n  args,\n  vm,\n  info\n) {\n  var res;\n  try {\n    res = args ? handler.apply(context, args) : handler.call(context);\n    if (res && !res._isVue && isPromise(res) && !res._handled) {\n      res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n      // issue #9511\n      // avoid catch triggering multiple times when nested calls\n      res._handled = true;\n    }\n  } catch (e) {\n    handleError(e, vm, info);\n  }\n  return res\n}\n\nfunction globalHandleError (err, vm, info) {\n  if (config.errorHandler) {\n    try {\n      return config.errorHandler.call(null, err, vm, info)\n    } catch (e) {\n      // if the user intentionally throws the original error in the handler,\n      // do not log it twice\n      if (e !== err) {\n        logError(e, null, 'config.errorHandler');\n      }\n    }\n  }\n  logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n  }\n  /* istanbul ignore else */\n  if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n    console.error(err);\n  } else {\n    throw err\n  }\n}\n\n/*  */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n  pending = false;\n  var copies = callbacks.slice(0);\n  callbacks.length = 0;\n  for (var i = 0; i < copies.length; i++) {\n    copies[i]();\n  }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n  var p = Promise.resolve();\n  timerFunc = function () {\n    p.then(flushCallbacks);\n    // In problematic UIWebViews, Promise.then doesn't completely break, but\n    // it can get stuck in a weird state where callbacks are pushed into the\n    // microtask queue but the queue isn't being flushed, until the browser\n    // needs to do some other work, e.g. handle a timer. Therefore we can\n    // \"force\" the microtask queue to be flushed by adding an empty timer.\n    if (isIOS) { setTimeout(noop); }\n  };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n  isNative(MutationObserver) ||\n  // PhantomJS and iOS 7.x\n  MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n  // Use MutationObserver where native Promise is not available,\n  // e.g. PhantomJS, iOS7, Android 4.4\n  // (#6466 MutationObserver is unreliable in IE11)\n  var counter = 1;\n  var observer = new MutationObserver(flushCallbacks);\n  var textNode = document.createTextNode(String(counter));\n  observer.observe(textNode, {\n    characterData: true\n  });\n  timerFunc = function () {\n    counter = (counter + 1) % 2;\n    textNode.data = String(counter);\n  };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n  // Fallback to setImmediate.\n  // Technically it leverages the (macro) task queue,\n  // but it is still a better choice than setTimeout.\n  timerFunc = function () {\n    setImmediate(flushCallbacks);\n  };\n} else {\n  // Fallback to setTimeout.\n  timerFunc = function () {\n    setTimeout(flushCallbacks, 0);\n  };\n}\n\nfunction nextTick (cb, ctx) {\n  var _resolve;\n  callbacks.push(function () {\n    if (cb) {\n      try {\n        cb.call(ctx);\n      } catch (e) {\n        handleError(e, ctx, 'nextTick');\n      }\n    } else if (_resolve) {\n      _resolve(ctx);\n    }\n  });\n  if (!pending) {\n    pending = true;\n    timerFunc();\n  }\n  // $flow-disable-line\n  if (!cb && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve) {\n      _resolve = resolve;\n    })\n  }\n}\n\n/*  */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n  var allowedGlobals = makeMap(\n    'Infinity,undefined,NaN,isFinite,isNaN,' +\n    'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n    'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n    'require' // for Webpack/Browserify\n  );\n\n  var warnNonPresent = function (target, key) {\n    warn(\n      \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n      'referenced during render. Make sure that this property is reactive, ' +\n      'either in the data option, or for class-based components, by ' +\n      'initializing the property. ' +\n      'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n      target\n    );\n  };\n\n  var warnReservedPrefix = function (target, key) {\n    warn(\n      \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n      'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n      'prevent conflicts with Vue internals. ' +\n      'See: https://vuejs.org/v2/api/#data',\n      target\n    );\n  };\n\n  var hasProxy =\n    typeof Proxy !== 'undefined' && isNative(Proxy);\n\n  if (hasProxy) {\n    var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n    config.keyCodes = new Proxy(config.keyCodes, {\n      set: function set (target, key, value) {\n        if (isBuiltInModifier(key)) {\n          warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n          return false\n        } else {\n          target[key] = value;\n          return true\n        }\n      }\n    });\n  }\n\n  var hasHandler = {\n    has: function has (target, key) {\n      var has = key in target;\n      var isAllowed = allowedGlobals(key) ||\n        (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n      if (!has && !isAllowed) {\n        if (key in target.$data) { warnReservedPrefix(target, key); }\n        else { warnNonPresent(target, key); }\n      }\n      return has || !isAllowed\n    }\n  };\n\n  var getHandler = {\n    get: function get (target, key) {\n      if (typeof key === 'string' && !(key in target)) {\n        if (key in target.$data) { warnReservedPrefix(target, key); }\n        else { warnNonPresent(target, key); }\n      }\n      return target[key]\n    }\n  };\n\n  initProxy = function initProxy (vm) {\n    if (hasProxy) {\n      // determine which proxy handler to use\n      var options = vm.$options;\n      var handlers = options.render && options.render._withStripped\n        ? getHandler\n        : hasHandler;\n      vm._renderProxy = new Proxy(vm, handlers);\n    } else {\n      vm._renderProxy = vm;\n    }\n  };\n}\n\n/*  */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n  _traverse(val, seenObjects);\n  seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n  var i, keys;\n  var isA = Array.isArray(val);\n  if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n    return\n  }\n  if (val.__ob__) {\n    var depId = val.__ob__.dep.id;\n    if (seen.has(depId)) {\n      return\n    }\n    seen.add(depId);\n  }\n  if (isA) {\n    i = val.length;\n    while (i--) { _traverse(val[i], seen); }\n  } else {\n    keys = Object.keys(val);\n    i = keys.length;\n    while (i--) { _traverse(val[keys[i]], seen); }\n  }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n  var perf = inBrowser && window.performance;\n  /* istanbul ignore if */\n  if (\n    perf &&\n    perf.mark &&\n    perf.measure &&\n    perf.clearMarks &&\n    perf.clearMeasures\n  ) {\n    mark = function (tag) { return perf.mark(tag); };\n    measure = function (name, startTag, endTag) {\n      perf.measure(name, startTag, endTag);\n      perf.clearMarks(startTag);\n      perf.clearMarks(endTag);\n      // perf.clearMeasures(name)\n    };\n  }\n}\n\n/*  */\n\nvar normalizeEvent = cached(function (name) {\n  var passive = name.charAt(0) === '&';\n  name = passive ? name.slice(1) : name;\n  var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n  name = once$$1 ? name.slice(1) : name;\n  var capture = name.charAt(0) === '!';\n  name = capture ? name.slice(1) : name;\n  return {\n    name: name,\n    once: once$$1,\n    capture: capture,\n    passive: passive\n  }\n});\n\nfunction createFnInvoker (fns, vm) {\n  function invoker () {\n    var arguments$1 = arguments;\n\n    var fns = invoker.fns;\n    if (Array.isArray(fns)) {\n      var cloned = fns.slice();\n      for (var i = 0; i < cloned.length; i++) {\n        invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n      }\n    } else {\n      // return handler return value for single handlers\n      return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n    }\n  }\n  invoker.fns = fns;\n  return invoker\n}\n\nfunction updateListeners (\n  on,\n  oldOn,\n  add,\n  remove$$1,\n  createOnceHandler,\n  vm\n) {\n  var name, def$$1, cur, old, event;\n  for (name in on) {\n    def$$1 = cur = on[name];\n    old = oldOn[name];\n    event = normalizeEvent(name);\n    if (isUndef(cur)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n        vm\n      );\n    } else if (isUndef(old)) {\n      if (isUndef(cur.fns)) {\n        cur = on[name] = createFnInvoker(cur, vm);\n      }\n      if (isTrue(event.once)) {\n        cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n      }\n      add(event.name, cur, event.capture, event.passive, event.params);\n    } else if (cur !== old) {\n      old.fns = cur;\n      on[name] = old;\n    }\n  }\n  for (name in oldOn) {\n    if (isUndef(on[name])) {\n      event = normalizeEvent(name);\n      remove$$1(event.name, oldOn[name], event.capture);\n    }\n  }\n}\n\n/*  */\n\n/*  */\n\n// fixed by xxxxxx (mp properties)\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\n  var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\n  if (isUndef(propOptions)) {\n    return res\n  }\n  var externalClasses = Ctor.options.mpOptions.externalClasses || [];\n  var attrs = data.attrs;\n  var props = data.props;\n  if (isDef(attrs) || isDef(props)) {\n    for (var key in propOptions) {\n      var altKey = hyphenate(key);\n      var result = checkProp(res, props, key, altKey, true) ||\n          checkProp(res, attrs, key, altKey, false);\n      // externalClass\n      if (\n        result &&\n        res[key] &&\n        externalClasses.indexOf(altKey) !== -1 &&\n        context[camelize(res[key])]\n      ) {\n        // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n        res[key] = context[camelize(res[key])];\n      }\n    }\n  }\n  return res\n}\n\nfunction extractPropsFromVNodeData (\n  data,\n  Ctor,\n  tag,\n  context// fixed by xxxxxx\n) {\n  // we are only extracting raw values here.\n  // validation and default values are handled in the child\n  // component itself.\n  var propOptions = Ctor.options.props;\n  if (isUndef(propOptions)) {\n    // fixed by xxxxxx\n    return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n  }\n  var res = {};\n  var attrs = data.attrs;\n  var props = data.props;\n  if (isDef(attrs) || isDef(props)) {\n    for (var key in propOptions) {\n      var altKey = hyphenate(key);\n      if (process.env.NODE_ENV !== 'production') {\n        var keyInLowerCase = key.toLowerCase();\n        if (\n          key !== keyInLowerCase &&\n          attrs && hasOwn(attrs, keyInLowerCase)\n        ) {\n          tip(\n            \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n            (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n            \" \\\"\" + key + \"\\\". \" +\n            \"Note that HTML attributes are case-insensitive and camelCased \" +\n            \"props need to use their kebab-case equivalents when using in-DOM \" +\n            \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n          );\n        }\n      }\n      checkProp(res, props, key, altKey, true) ||\n      checkProp(res, attrs, key, altKey, false);\n    }\n  }\n  // fixed by xxxxxx\n  return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n  res,\n  hash,\n  key,\n  altKey,\n  preserve\n) {\n  if (isDef(hash)) {\n    if (hasOwn(hash, key)) {\n      res[key] = hash[key];\n      if (!preserve) {\n        delete hash[key];\n      }\n      return true\n    } else if (hasOwn(hash, altKey)) {\n      res[key] = hash[altKey];\n      if (!preserve) {\n        delete hash[altKey];\n      }\n      return true\n    }\n  }\n  return false\n}\n\n/*  */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n  for (var i = 0; i < children.length; i++) {\n    if (Array.isArray(children[i])) {\n      return Array.prototype.concat.apply([], children)\n    }\n  }\n  return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n  return isPrimitive(children)\n    ? [createTextVNode(children)]\n    : Array.isArray(children)\n      ? normalizeArrayChildren(children)\n      : undefined\n}\n\nfunction isTextNode (node) {\n  return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n  var res = [];\n  var i, c, lastIndex, last;\n  for (i = 0; i < children.length; i++) {\n    c = children[i];\n    if (isUndef(c) || typeof c === 'boolean') { continue }\n    lastIndex = res.length - 1;\n    last = res[lastIndex];\n    //  nested\n    if (Array.isArray(c)) {\n      if (c.length > 0) {\n        c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n        // merge adjacent text nodes\n        if (isTextNode(c[0]) && isTextNode(last)) {\n          res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n          c.shift();\n        }\n        res.push.apply(res, c);\n      }\n    } else if (isPrimitive(c)) {\n      if (isTextNode(last)) {\n        // merge adjacent text nodes\n        // this is necessary for SSR hydration because text nodes are\n        // essentially merged when rendered to HTML strings\n        res[lastIndex] = createTextVNode(last.text + c);\n      } else if (c !== '') {\n        // convert primitive to vnode\n        res.push(createTextVNode(c));\n      }\n    } else {\n      if (isTextNode(c) && isTextNode(last)) {\n        // merge adjacent text nodes\n        res[lastIndex] = createTextVNode(last.text + c.text);\n      } else {\n        // default key for nested array children (likely generated by v-for)\n        if (isTrue(children._isVList) &&\n          isDef(c.tag) &&\n          isUndef(c.key) &&\n          isDef(nestedIndex)) {\n          c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n        }\n        res.push(c);\n      }\n    }\n  }\n  return res\n}\n\n/*  */\n\nfunction initProvide (vm) {\n  var provide = vm.$options.provide;\n  if (provide) {\n    vm._provided = typeof provide === 'function'\n      ? provide.call(vm)\n      : provide;\n  }\n}\n\nfunction initInjections (vm) {\n  var result = resolveInject(vm.$options.inject, vm);\n  if (result) {\n    toggleObserving(false);\n    Object.keys(result).forEach(function (key) {\n      /* istanbul ignore else */\n      if (process.env.NODE_ENV !== 'production') {\n        defineReactive$$1(vm, key, result[key], function () {\n          warn(\n            \"Avoid mutating an injected value directly since the changes will be \" +\n            \"overwritten whenever the provided component re-renders. \" +\n            \"injection being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        });\n      } else {\n        defineReactive$$1(vm, key, result[key]);\n      }\n    });\n    toggleObserving(true);\n  }\n}\n\nfunction resolveInject (inject, vm) {\n  if (inject) {\n    // inject is :any because flow is not smart enough to figure out cached\n    var result = Object.create(null);\n    var keys = hasSymbol\n      ? Reflect.ownKeys(inject)\n      : Object.keys(inject);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      // #6574 in case the inject object is observed...\n      if (key === '__ob__') { continue }\n      var provideKey = inject[key].from;\n      var source = vm;\n      while (source) {\n        if (source._provided && hasOwn(source._provided, provideKey)) {\n          result[key] = source._provided[provideKey];\n          break\n        }\n        source = source.$parent;\n      }\n      if (!source) {\n        if ('default' in inject[key]) {\n          var provideDefault = inject[key].default;\n          result[key] = typeof provideDefault === 'function'\n            ? provideDefault.call(vm)\n            : provideDefault;\n        } else if (process.env.NODE_ENV !== 'production') {\n          warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n        }\n      }\n    }\n    return result\n  }\n}\n\n/*  */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n  children,\n  context\n) {\n  if (!children || !children.length) {\n    return {}\n  }\n  var slots = {};\n  for (var i = 0, l = children.length; i < l; i++) {\n    var child = children[i];\n    var data = child.data;\n    // remove slot attribute if the node is resolved as a Vue slot node\n    if (data && data.attrs && data.attrs.slot) {\n      delete data.attrs.slot;\n    }\n    // named slots should only be respected if the vnode was rendered in the\n    // same context.\n    if ((child.context === context || child.fnContext === context) &&\n      data && data.slot != null\n    ) {\n      var name = data.slot;\n      var slot = (slots[name] || (slots[name] = []));\n      if (child.tag === 'template') {\n        slot.push.apply(slot, child.children || []);\n      } else {\n        slot.push(child);\n      }\n    } else {\n      // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page\n      if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){\n        (slots['page'] || (slots['page'] = [])).push(child);\n      }else{\n        (slots.default || (slots.default = [])).push(child);\n      }\n    }\n  }\n  // ignore slots that contains only whitespace\n  for (var name$1 in slots) {\n    if (slots[name$1].every(isWhitespace)) {\n      delete slots[name$1];\n    }\n  }\n  return slots\n}\n\nfunction isWhitespace (node) {\n  return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/*  */\n\nfunction normalizeScopedSlots (\n  slots,\n  normalSlots,\n  prevSlots\n) {\n  var res;\n  var hasNormalSlots = Object.keys(normalSlots).length > 0;\n  var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n  var key = slots && slots.$key;\n  if (!slots) {\n    res = {};\n  } else if (slots._normalized) {\n    // fast path 1: child component re-render only, parent did not change\n    return slots._normalized\n  } else if (\n    isStable &&\n    prevSlots &&\n    prevSlots !== emptyObject &&\n    key === prevSlots.$key &&\n    !hasNormalSlots &&\n    !prevSlots.$hasNormal\n  ) {\n    // fast path 2: stable scoped slots w/ no normal slots to proxy,\n    // only need to normalize once\n    return prevSlots\n  } else {\n    res = {};\n    for (var key$1 in slots) {\n      if (slots[key$1] && key$1[0] !== '$') {\n        res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n      }\n    }\n  }\n  // expose normal slots on scopedSlots\n  for (var key$2 in normalSlots) {\n    if (!(key$2 in res)) {\n      res[key$2] = proxyNormalSlot(normalSlots, key$2);\n    }\n  }\n  // avoriaz seems to mock a non-extensible $scopedSlots object\n  // and when that is passed down this would cause an error\n  if (slots && Object.isExtensible(slots)) {\n    (slots)._normalized = res;\n  }\n  def(res, '$stable', isStable);\n  def(res, '$key', key);\n  def(res, '$hasNormal', hasNormalSlots);\n  return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n  var normalized = function () {\n    var res = arguments.length ? fn.apply(null, arguments) : fn({});\n    res = res && typeof res === 'object' && !Array.isArray(res)\n      ? [res] // single vnode\n      : normalizeChildren(res);\n    return res && (\n      res.length === 0 ||\n      (res.length === 1 && res[0].isComment) // #9658\n    ) ? undefined\n      : res\n  };\n  // this is a slot using the new v-slot syntax without scope. although it is\n  // compiled as a scoped slot, render fn users would expect it to be present\n  // on this.$slots because the usage is semantically a normal slot.\n  if (fn.proxy) {\n    Object.defineProperty(normalSlots, key, {\n      get: normalized,\n      enumerable: true,\n      configurable: true\n    });\n  }\n  return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n  return function () { return slots[key]; }\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n  val,\n  render\n) {\n  var ret, i, l, keys, key;\n  if (Array.isArray(val) || typeof val === 'string') {\n    ret = new Array(val.length);\n    for (i = 0, l = val.length; i < l; i++) {\n      ret[i] = render(val[i], i, i, i); // fixed by xxxxxx\n    }\n  } else if (typeof val === 'number') {\n    ret = new Array(val);\n    for (i = 0; i < val; i++) {\n      ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx\n    }\n  } else if (isObject(val)) {\n    if (hasSymbol && val[Symbol.iterator]) {\n      ret = [];\n      var iterator = val[Symbol.iterator]();\n      var result = iterator.next();\n      while (!result.done) {\n        ret.push(render(result.value, ret.length, i, i++)); // fixed by xxxxxx\n        result = iterator.next();\n      }\n    } else {\n      keys = Object.keys(val);\n      ret = new Array(keys.length);\n      for (i = 0, l = keys.length; i < l; i++) {\n        key = keys[i];\n        ret[i] = render(val[key], key, i, i); // fixed by xxxxxx\n      }\n    }\n  }\n  if (!isDef(ret)) {\n    ret = [];\n  }\n  (ret)._isVList = true;\n  return ret\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n  name,\n  fallback,\n  props,\n  bindObject\n) {\n  var scopedSlotFn = this.$scopedSlots[name];\n  var nodes;\n  if (scopedSlotFn) { // scoped slot\n    props = props || {};\n    if (bindObject) {\n      if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n        warn(\n          'slot v-bind without argument expects an Object',\n          this\n        );\n      }\n      props = extend(extend({}, bindObject), props);\n    }\n    // fixed by xxxxxx app-plus scopedSlot\n    nodes = scopedSlotFn(props, this, props._i) || fallback;\n  } else {\n    nodes = this.$slots[name] || fallback;\n  }\n\n  var target = props && props.slot;\n  if (target) {\n    return this.$createElement('template', { slot: target }, nodes)\n  } else {\n    return nodes\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n  return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/*  */\n\nfunction isKeyNotMatch (expect, actual) {\n  if (Array.isArray(expect)) {\n    return expect.indexOf(actual) === -1\n  } else {\n    return expect !== actual\n  }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n  eventKeyCode,\n  key,\n  builtInKeyCode,\n  eventKeyName,\n  builtInKeyName\n) {\n  var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n  if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n    return isKeyNotMatch(builtInKeyName, eventKeyName)\n  } else if (mappedKeyCode) {\n    return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n  } else if (eventKeyName) {\n    return hyphenate(eventKeyName) !== key\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n  data,\n  tag,\n  value,\n  asProp,\n  isSync\n) {\n  if (value) {\n    if (!isObject(value)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'v-bind without argument expects an Object or Array value',\n        this\n      );\n    } else {\n      if (Array.isArray(value)) {\n        value = toObject(value);\n      }\n      var hash;\n      var loop = function ( key ) {\n        if (\n          key === 'class' ||\n          key === 'style' ||\n          isReservedAttribute(key)\n        ) {\n          hash = data;\n        } else {\n          var type = data.attrs && data.attrs.type;\n          hash = asProp || config.mustUseProp(tag, type, key)\n            ? data.domProps || (data.domProps = {})\n            : data.attrs || (data.attrs = {});\n        }\n        var camelizedKey = camelize(key);\n        var hyphenatedKey = hyphenate(key);\n        if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n          hash[key] = value[key];\n\n          if (isSync) {\n            var on = data.on || (data.on = {});\n            on[(\"update:\" + key)] = function ($event) {\n              value[key] = $event;\n            };\n          }\n        }\n      };\n\n      for (var key in value) loop( key );\n    }\n  }\n  return data\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n  index,\n  isInFor\n) {\n  var cached = this._staticTrees || (this._staticTrees = []);\n  var tree = cached[index];\n  // if has already-rendered static tree and not inside v-for,\n  // we can reuse the same tree.\n  if (tree && !isInFor) {\n    return tree\n  }\n  // otherwise, render a fresh tree.\n  tree = cached[index] = this.$options.staticRenderFns[index].call(\n    this._renderProxy,\n    null,\n    this // for render fns generated for functional component templates\n  );\n  markStatic(tree, (\"__static__\" + index), false);\n  return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n  tree,\n  index,\n  key\n) {\n  markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n  return tree\n}\n\nfunction markStatic (\n  tree,\n  key,\n  isOnce\n) {\n  if (Array.isArray(tree)) {\n    for (var i = 0; i < tree.length; i++) {\n      if (tree[i] && typeof tree[i] !== 'string') {\n        markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n      }\n    }\n  } else {\n    markStaticNode(tree, key, isOnce);\n  }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n  node.isStatic = true;\n  node.key = key;\n  node.isOnce = isOnce;\n}\n\n/*  */\n\nfunction bindObjectListeners (data, value) {\n  if (value) {\n    if (!isPlainObject(value)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'v-on without argument expects an Object value',\n        this\n      );\n    } else {\n      var on = data.on = data.on ? extend({}, data.on) : {};\n      for (var key in value) {\n        var existing = on[key];\n        var ours = value[key];\n        on[key] = existing ? [].concat(existing, ours) : ours;\n      }\n    }\n  }\n  return data\n}\n\n/*  */\n\nfunction resolveScopedSlots (\n  fns, // see flow/vnode\n  res,\n  // the following are added in 2.6\n  hasDynamicKeys,\n  contentHashKey\n) {\n  res = res || { $stable: !hasDynamicKeys };\n  for (var i = 0; i < fns.length; i++) {\n    var slot = fns[i];\n    if (Array.isArray(slot)) {\n      resolveScopedSlots(slot, res, hasDynamicKeys);\n    } else if (slot) {\n      // marker for reverse proxying v-slot without scope on this.$slots\n      if (slot.proxy) {\n        slot.fn.proxy = true;\n      }\n      res[slot.key] = slot.fn;\n    }\n  }\n  if (contentHashKey) {\n    (res).$key = contentHashKey;\n  }\n  return res\n}\n\n/*  */\n\nfunction bindDynamicKeys (baseObj, values) {\n  for (var i = 0; i < values.length; i += 2) {\n    var key = values[i];\n    if (typeof key === 'string' && key) {\n      baseObj[values[i]] = values[i + 1];\n    } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n      // null is a special value for explicitly removing a binding\n      warn(\n        (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n        this\n      );\n    }\n  }\n  return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n  return typeof value === 'string' ? symbol + value : value\n}\n\n/*  */\n\nfunction installRenderHelpers (target) {\n  target._o = markOnce;\n  target._n = toNumber;\n  target._s = toString;\n  target._l = renderList;\n  target._t = renderSlot;\n  target._q = looseEqual;\n  target._i = looseIndexOf;\n  target._m = renderStatic;\n  target._f = resolveFilter;\n  target._k = checkKeyCodes;\n  target._b = bindObjectProps;\n  target._v = createTextVNode;\n  target._e = createEmptyVNode;\n  target._u = resolveScopedSlots;\n  target._g = bindObjectListeners;\n  target._d = bindDynamicKeys;\n  target._p = prependModifier;\n}\n\n/*  */\n\nfunction FunctionalRenderContext (\n  data,\n  props,\n  children,\n  parent,\n  Ctor\n) {\n  var this$1 = this;\n\n  var options = Ctor.options;\n  // ensure the createElement function in functional components\n  // gets a unique context - this is necessary for correct named slot check\n  var contextVm;\n  if (hasOwn(parent, '_uid')) {\n    contextVm = Object.create(parent);\n    // $flow-disable-line\n    contextVm._original = parent;\n  } else {\n    // the context vm passed in is a functional context as well.\n    // in this case we want to make sure we are able to get a hold to the\n    // real context instance.\n    contextVm = parent;\n    // $flow-disable-line\n    parent = parent._original;\n  }\n  var isCompiled = isTrue(options._compiled);\n  var needNormalization = !isCompiled;\n\n  this.data = data;\n  this.props = props;\n  this.children = children;\n  this.parent = parent;\n  this.listeners = data.on || emptyObject;\n  this.injections = resolveInject(options.inject, parent);\n  this.slots = function () {\n    if (!this$1.$slots) {\n      normalizeScopedSlots(\n        data.scopedSlots,\n        this$1.$slots = resolveSlots(children, parent)\n      );\n    }\n    return this$1.$slots\n  };\n\n  Object.defineProperty(this, 'scopedSlots', ({\n    enumerable: true,\n    get: function get () {\n      return normalizeScopedSlots(data.scopedSlots, this.slots())\n    }\n  }));\n\n  // support for compiled functional template\n  if (isCompiled) {\n    // exposing $options for renderStatic()\n    this.$options = options;\n    // pre-resolve slots for renderSlot()\n    this.$slots = this.slots();\n    this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n  }\n\n  if (options._scopeId) {\n    this._c = function (a, b, c, d) {\n      var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n      if (vnode && !Array.isArray(vnode)) {\n        vnode.fnScopeId = options._scopeId;\n        vnode.fnContext = parent;\n      }\n      return vnode\n    };\n  } else {\n    this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n  }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n  Ctor,\n  propsData,\n  data,\n  contextVm,\n  children\n) {\n  var options = Ctor.options;\n  var props = {};\n  var propOptions = options.props;\n  if (isDef(propOptions)) {\n    for (var key in propOptions) {\n      props[key] = validateProp(key, propOptions, propsData || emptyObject);\n    }\n  } else {\n    if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n    if (isDef(data.props)) { mergeProps(props, data.props); }\n  }\n\n  var renderContext = new FunctionalRenderContext(\n    data,\n    props,\n    children,\n    contextVm,\n    Ctor\n  );\n\n  var vnode = options.render.call(null, renderContext._c, renderContext);\n\n  if (vnode instanceof VNode) {\n    return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n  } else if (Array.isArray(vnode)) {\n    var vnodes = normalizeChildren(vnode) || [];\n    var res = new Array(vnodes.length);\n    for (var i = 0; i < vnodes.length; i++) {\n      res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n    }\n    return res\n  }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n  // #7817 clone node before setting fnContext, otherwise if the node is reused\n  // (e.g. it was from a cached normal slot) the fnContext causes named slots\n  // that should not be matched to match.\n  var clone = cloneVNode(vnode);\n  clone.fnContext = contextVm;\n  clone.fnOptions = options;\n  if (process.env.NODE_ENV !== 'production') {\n    (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n  }\n  if (data.slot) {\n    (clone.data || (clone.data = {})).slot = data.slot;\n  }\n  return clone\n}\n\nfunction mergeProps (to, from) {\n  for (var key in from) {\n    to[camelize(key)] = from[key];\n  }\n}\n\n/*  */\n\n/*  */\n\n/*  */\n\n/*  */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n  init: function init (vnode, hydrating) {\n    if (\n      vnode.componentInstance &&\n      !vnode.componentInstance._isDestroyed &&\n      vnode.data.keepAlive\n    ) {\n      // kept-alive components, treat as a patch\n      var mountedNode = vnode; // work around flow\n      componentVNodeHooks.prepatch(mountedNode, mountedNode);\n    } else {\n      var child = vnode.componentInstance = createComponentInstanceForVnode(\n        vnode,\n        activeInstance\n      );\n      child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n    }\n  },\n\n  prepatch: function prepatch (oldVnode, vnode) {\n    var options = vnode.componentOptions;\n    var child = vnode.componentInstance = oldVnode.componentInstance;\n    updateChildComponent(\n      child,\n      options.propsData, // updated props\n      options.listeners, // updated listeners\n      vnode, // new parent vnode\n      options.children // new children\n    );\n  },\n\n  insert: function insert (vnode) {\n    var context = vnode.context;\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isMounted) {\n      callHook(componentInstance, 'onServiceCreated');\n      callHook(componentInstance, 'onServiceAttached');\n      componentInstance._isMounted = true;\n      callHook(componentInstance, 'mounted');\n    }\n    if (vnode.data.keepAlive) {\n      if (context._isMounted) {\n        // vue-router#1212\n        // During updates, a kept-alive component's child components may\n        // change, so directly walking the tree here may call activated hooks\n        // on incorrect children. Instead we push them into a queue which will\n        // be processed after the whole patch process ended.\n        queueActivatedComponent(componentInstance);\n      } else {\n        activateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  },\n\n  destroy: function destroy (vnode) {\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isDestroyed) {\n      if (!vnode.data.keepAlive) {\n        componentInstance.$destroy();\n      } else {\n        deactivateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n  Ctor,\n  data,\n  context,\n  children,\n  tag\n) {\n  if (isUndef(Ctor)) {\n    return\n  }\n\n  var baseCtor = context.$options._base;\n\n  // plain options object: turn it into a constructor\n  if (isObject(Ctor)) {\n    Ctor = baseCtor.extend(Ctor);\n  }\n\n  // if at this stage it's not a constructor or an async component factory,\n  // reject.\n  if (typeof Ctor !== 'function') {\n    if (process.env.NODE_ENV !== 'production') {\n      warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n    }\n    return\n  }\n\n  // async component\n  var asyncFactory;\n  if (isUndef(Ctor.cid)) {\n    asyncFactory = Ctor;\n    Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n    if (Ctor === undefined) {\n      // return a placeholder node for async component, which is rendered\n      // as a comment node but preserves all the raw information for the node.\n      // the information will be used for async server-rendering and hydration.\n      return createAsyncPlaceholder(\n        asyncFactory,\n        data,\n        context,\n        children,\n        tag\n      )\n    }\n  }\n\n  data = data || {};\n\n  // resolve constructor options in case global mixins are applied after\n  // component constructor creation\n  resolveConstructorOptions(Ctor);\n\n  // transform component v-model data into props & events\n  if (isDef(data.model)) {\n    transformModel(Ctor.options, data);\n  }\n\n  // extract props\n  var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx\n\n  // functional component\n  if (isTrue(Ctor.options.functional)) {\n    return createFunctionalComponent(Ctor, propsData, data, context, children)\n  }\n\n  // extract listeners, since these needs to be treated as\n  // child component listeners instead of DOM listeners\n  var listeners = data.on;\n  // replace with listeners with .native modifier\n  // so it gets processed during parent component patch.\n  data.on = data.nativeOn;\n\n  if (isTrue(Ctor.options.abstract)) {\n    // abstract components do not keep anything\n    // other than props & listeners & slot\n\n    // work around flow\n    var slot = data.slot;\n    data = {};\n    if (slot) {\n      data.slot = slot;\n    }\n  }\n\n  // install component management hooks onto the placeholder node\n  installComponentHooks(data);\n\n  // return a placeholder vnode\n  var name = Ctor.options.name || tag;\n  var vnode = new VNode(\n    (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n    data, undefined, undefined, undefined, context,\n    { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n    asyncFactory\n  );\n\n  return vnode\n}\n\nfunction createComponentInstanceForVnode (\n  vnode, // we know it's MountedComponentVNode but flow doesn't\n  parent // activeInstance in lifecycle state\n) {\n  var options = {\n    _isComponent: true,\n    _parentVnode: vnode,\n    parent: parent\n  };\n  // check inline-template render functions\n  var inlineTemplate = vnode.data.inlineTemplate;\n  if (isDef(inlineTemplate)) {\n    options.render = inlineTemplate.render;\n    options.staticRenderFns = inlineTemplate.staticRenderFns;\n  }\n  return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n  var hooks = data.hook || (data.hook = {});\n  for (var i = 0; i < hooksToMerge.length; i++) {\n    var key = hooksToMerge[i];\n    var existing = hooks[key];\n    var toMerge = componentVNodeHooks[key];\n    if (existing !== toMerge && !(existing && existing._merged)) {\n      hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n    }\n  }\n}\n\nfunction mergeHook$1 (f1, f2) {\n  var merged = function (a, b) {\n    // flow complains about extra args which is why we use any\n    f1(a, b);\n    f2(a, b);\n  };\n  merged._merged = true;\n  return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n  var prop = (options.model && options.model.prop) || 'value';\n  var event = (options.model && options.model.event) || 'input'\n  ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n  var on = data.on || (data.on = {});\n  var existing = on[event];\n  var callback = data.model.callback;\n  if (isDef(existing)) {\n    if (\n      Array.isArray(existing)\n        ? existing.indexOf(callback) === -1\n        : existing !== callback\n    ) {\n      on[event] = [callback].concat(existing);\n    }\n  } else {\n    on[event] = callback;\n  }\n}\n\n/*  */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType,\n  alwaysNormalize\n) {\n  if (Array.isArray(data) || isPrimitive(data)) {\n    normalizationType = children;\n    children = data;\n    data = undefined;\n  }\n  if (isTrue(alwaysNormalize)) {\n    normalizationType = ALWAYS_NORMALIZE;\n  }\n  return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType\n) {\n  if (isDef(data) && isDef((data).__ob__)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n      'Always create fresh vnode data objects in each render!',\n      context\n    );\n    return createEmptyVNode()\n  }\n  // object syntax in v-bind\n  if (isDef(data) && isDef(data.is)) {\n    tag = data.is;\n  }\n  if (!tag) {\n    // in case of component :is set to falsy value\n    return createEmptyVNode()\n  }\n  // warn against non-primitive key\n  if (process.env.NODE_ENV !== 'production' &&\n    isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n  ) {\n    {\n      warn(\n        'Avoid using non-primitive value as key, ' +\n        'use string/number value instead.',\n        context\n      );\n    }\n  }\n  // support single function children as default scoped slot\n  if (Array.isArray(children) &&\n    typeof children[0] === 'function'\n  ) {\n    data = data || {};\n    data.scopedSlots = { default: children[0] };\n    children.length = 0;\n  }\n  if (normalizationType === ALWAYS_NORMALIZE) {\n    children = normalizeChildren(children);\n  } else if (normalizationType === SIMPLE_NORMALIZE) {\n    children = simpleNormalizeChildren(children);\n  }\n  var vnode, ns;\n  if (typeof tag === 'string') {\n    var Ctor;\n    ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n    if (config.isReservedTag(tag)) {\n      // platform built-in elements\n      if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n        warn(\n          (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n          context\n        );\n      }\n      vnode = new VNode(\n        config.parsePlatformTagName(tag), data, children,\n        undefined, undefined, context\n      );\n    } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n      // component\n      vnode = createComponent(Ctor, data, context, children, tag);\n    } else {\n      // unknown or unlisted namespaced elements\n      // check at runtime because it may get assigned a namespace when its\n      // parent normalizes children\n      vnode = new VNode(\n        tag, data, children,\n        undefined, undefined, context\n      );\n    }\n  } else {\n    // direct component options / constructor\n    vnode = createComponent(tag, data, context, children);\n  }\n  if (Array.isArray(vnode)) {\n    return vnode\n  } else if (isDef(vnode)) {\n    if (isDef(ns)) { applyNS(vnode, ns); }\n    if (isDef(data)) { registerDeepBindings(data); }\n    return vnode\n  } else {\n    return createEmptyVNode()\n  }\n}\n\nfunction applyNS (vnode, ns, force) {\n  vnode.ns = ns;\n  if (vnode.tag === 'foreignObject') {\n    // use default namespace inside foreignObject\n    ns = undefined;\n    force = true;\n  }\n  if (isDef(vnode.children)) {\n    for (var i = 0, l = vnode.children.length; i < l; i++) {\n      var child = vnode.children[i];\n      if (isDef(child.tag) && (\n        isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n        applyNS(child, ns, force);\n      }\n    }\n  }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n  if (isObject(data.style)) {\n    traverse(data.style);\n  }\n  if (isObject(data.class)) {\n    traverse(data.class);\n  }\n}\n\n/*  */\n\nfunction initRender (vm) {\n  vm._vnode = null; // the root of the child tree\n  vm._staticTrees = null; // v-once cached trees\n  var options = vm.$options;\n  var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n  var renderContext = parentVnode && parentVnode.context;\n  vm.$slots = resolveSlots(options._renderChildren, renderContext);\n  vm.$scopedSlots = emptyObject;\n  // bind the createElement fn to this instance\n  // so that we get proper render context inside it.\n  // args order: tag, data, children, normalizationType, alwaysNormalize\n  // internal version is used by render functions compiled from templates\n  vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n  // normalization is always applied for the public version, used in\n  // user-written render functions.\n  vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n  // $attrs & $listeners are exposed for easier HOC creation.\n  // they need to be reactive so that HOCs using them are always updated\n  var parentData = parentVnode && parentVnode.data;\n\n  /* istanbul ignore else */\n  if (process.env.NODE_ENV !== 'production') {\n    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n    }, true);\n    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n    }, true);\n  } else {\n    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n  }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n  // install runtime convenience helpers\n  installRenderHelpers(Vue.prototype);\n\n  Vue.prototype.$nextTick = function (fn) {\n    return nextTick(fn, this)\n  };\n\n  Vue.prototype._render = function () {\n    var vm = this;\n    var ref = vm.$options;\n    var render = ref.render;\n    var _parentVnode = ref._parentVnode;\n\n    if (_parentVnode) {\n      vm.$scopedSlots = normalizeScopedSlots(\n        _parentVnode.data.scopedSlots,\n        vm.$slots,\n        vm.$scopedSlots\n      );\n    }\n\n    // set parent vnode. this allows render functions to have access\n    // to the data on the placeholder node.\n    vm.$vnode = _parentVnode;\n    // render self\n    var vnode;\n    try {\n      // There's no need to maintain a stack because all render fns are called\n      // separately from one another. Nested component's render fns are called\n      // when parent component is patched.\n      currentRenderingInstance = vm;\n      vnode = render.call(vm._renderProxy, vm.$createElement);\n    } catch (e) {\n      handleError(e, vm, \"render\");\n      // return error render result,\n      // or previous vnode to prevent render error causing blank component\n      /* istanbul ignore else */\n      if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n        try {\n          vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n        } catch (e) {\n          handleError(e, vm, \"renderError\");\n          vnode = vm._vnode;\n        }\n      } else {\n        vnode = vm._vnode;\n      }\n    } finally {\n      currentRenderingInstance = null;\n    }\n    // if the returned array contains only a single node, allow it\n    if (Array.isArray(vnode) && vnode.length === 1) {\n      vnode = vnode[0];\n    }\n    // return empty vnode in case the render function errored out\n    if (!(vnode instanceof VNode)) {\n      if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n        warn(\n          'Multiple root nodes returned from render function. Render function ' +\n          'should return a single root node.',\n          vm\n        );\n      }\n      vnode = createEmptyVNode();\n    }\n    // set parent\n    vnode.parent = _parentVnode;\n    return vnode\n  };\n}\n\n/*  */\n\nfunction ensureCtor (comp, base) {\n  if (\n    comp.__esModule ||\n    (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n  ) {\n    comp = comp.default;\n  }\n  return isObject(comp)\n    ? base.extend(comp)\n    : comp\n}\n\nfunction createAsyncPlaceholder (\n  factory,\n  data,\n  context,\n  children,\n  tag\n) {\n  var node = createEmptyVNode();\n  node.asyncFactory = factory;\n  node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n  return node\n}\n\nfunction resolveAsyncComponent (\n  factory,\n  baseCtor\n) {\n  if (isTrue(factory.error) && isDef(factory.errorComp)) {\n    return factory.errorComp\n  }\n\n  if (isDef(factory.resolved)) {\n    return factory.resolved\n  }\n\n  var owner = currentRenderingInstance;\n  if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n    // already pending\n    factory.owners.push(owner);\n  }\n\n  if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n    return factory.loadingComp\n  }\n\n  if (owner && !isDef(factory.owners)) {\n    var owners = factory.owners = [owner];\n    var sync = true;\n    var timerLoading = null;\n    var timerTimeout = null\n\n    ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n    var forceRender = function (renderCompleted) {\n      for (var i = 0, l = owners.length; i < l; i++) {\n        (owners[i]).$forceUpdate();\n      }\n\n      if (renderCompleted) {\n        owners.length = 0;\n        if (timerLoading !== null) {\n          clearTimeout(timerLoading);\n          timerLoading = null;\n        }\n        if (timerTimeout !== null) {\n          clearTimeout(timerTimeout);\n          timerTimeout = null;\n        }\n      }\n    };\n\n    var resolve = once(function (res) {\n      // cache resolved\n      factory.resolved = ensureCtor(res, baseCtor);\n      // invoke callbacks only if this is not a synchronous resolve\n      // (async resolves are shimmed as synchronous during SSR)\n      if (!sync) {\n        forceRender(true);\n      } else {\n        owners.length = 0;\n      }\n    });\n\n    var reject = once(function (reason) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Failed to resolve async component: \" + (String(factory)) +\n        (reason ? (\"\\nReason: \" + reason) : '')\n      );\n      if (isDef(factory.errorComp)) {\n        factory.error = true;\n        forceRender(true);\n      }\n    });\n\n    var res = factory(resolve, reject);\n\n    if (isObject(res)) {\n      if (isPromise(res)) {\n        // () => Promise\n        if (isUndef(factory.resolved)) {\n          res.then(resolve, reject);\n        }\n      } else if (isPromise(res.component)) {\n        res.component.then(resolve, reject);\n\n        if (isDef(res.error)) {\n          factory.errorComp = ensureCtor(res.error, baseCtor);\n        }\n\n        if (isDef(res.loading)) {\n          factory.loadingComp = ensureCtor(res.loading, baseCtor);\n          if (res.delay === 0) {\n            factory.loading = true;\n          } else {\n            timerLoading = setTimeout(function () {\n              timerLoading = null;\n              if (isUndef(factory.resolved) && isUndef(factory.error)) {\n                factory.loading = true;\n                forceRender(false);\n              }\n            }, res.delay || 200);\n          }\n        }\n\n        if (isDef(res.timeout)) {\n          timerTimeout = setTimeout(function () {\n            timerTimeout = null;\n            if (isUndef(factory.resolved)) {\n              reject(\n                process.env.NODE_ENV !== 'production'\n                  ? (\"timeout (\" + (res.timeout) + \"ms)\")\n                  : null\n              );\n            }\n          }, res.timeout);\n        }\n      }\n    }\n\n    sync = false;\n    // return in case resolved synchronously\n    return factory.loading\n      ? factory.loadingComp\n      : factory.resolved\n  }\n}\n\n/*  */\n\nfunction isAsyncPlaceholder (node) {\n  return node.isComment && node.asyncFactory\n}\n\n/*  */\n\nfunction getFirstComponentChild (children) {\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      var c = children[i];\n      if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n        return c\n      }\n    }\n  }\n}\n\n/*  */\n\n/*  */\n\nfunction initEvents (vm) {\n  vm._events = Object.create(null);\n  vm._hasHookEvent = false;\n  // init parent attached events\n  var listeners = vm.$options._parentListeners;\n  if (listeners) {\n    updateComponentListeners(vm, listeners);\n  }\n}\n\nvar target;\n\nfunction add (event, fn) {\n  target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n  target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n  var _target = target;\n  return function onceHandler () {\n    var res = fn.apply(null, arguments);\n    if (res !== null) {\n      _target.$off(event, onceHandler);\n    }\n  }\n}\n\nfunction updateComponentListeners (\n  vm,\n  listeners,\n  oldListeners\n) {\n  target = vm;\n  updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n  target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n  var hookRE = /^hook:/;\n  Vue.prototype.$on = function (event, fn) {\n    var vm = this;\n    if (Array.isArray(event)) {\n      for (var i = 0, l = event.length; i < l; i++) {\n        vm.$on(event[i], fn);\n      }\n    } else {\n      (vm._events[event] || (vm._events[event] = [])).push(fn);\n      // optimize hook:event cost by using a boolean flag marked at registration\n      // instead of a hash lookup\n      if (hookRE.test(event)) {\n        vm._hasHookEvent = true;\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$once = function (event, fn) {\n    var vm = this;\n    function on () {\n      vm.$off(event, on);\n      fn.apply(vm, arguments);\n    }\n    on.fn = fn;\n    vm.$on(event, on);\n    return vm\n  };\n\n  Vue.prototype.$off = function (event, fn) {\n    var vm = this;\n    // all\n    if (!arguments.length) {\n      vm._events = Object.create(null);\n      return vm\n    }\n    // array of events\n    if (Array.isArray(event)) {\n      for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n        vm.$off(event[i$1], fn);\n      }\n      return vm\n    }\n    // specific event\n    var cbs = vm._events[event];\n    if (!cbs) {\n      return vm\n    }\n    if (!fn) {\n      vm._events[event] = null;\n      return vm\n    }\n    // specific handler\n    var cb;\n    var i = cbs.length;\n    while (i--) {\n      cb = cbs[i];\n      if (cb === fn || cb.fn === fn) {\n        cbs.splice(i, 1);\n        break\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$emit = function (event) {\n    var vm = this;\n    if (process.env.NODE_ENV !== 'production') {\n      var lowerCaseEvent = event.toLowerCase();\n      if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n        tip(\n          \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n          (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n          \"Note that HTML attributes are case-insensitive and you cannot use \" +\n          \"v-on to listen to camelCase events when using in-DOM templates. \" +\n          \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n        );\n      }\n    }\n    var cbs = vm._events[event];\n    if (cbs) {\n      cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n      var args = toArray(arguments, 1);\n      var info = \"event handler for \\\"\" + event + \"\\\"\";\n      for (var i = 0, l = cbs.length; i < l; i++) {\n        invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n      }\n    }\n    return vm\n  };\n}\n\n/*  */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n  var prevActiveInstance = activeInstance;\n  activeInstance = vm;\n  return function () {\n    activeInstance = prevActiveInstance;\n  }\n}\n\nfunction initLifecycle (vm) {\n  var options = vm.$options;\n\n  // locate first non-abstract parent\n  var parent = options.parent;\n  if (parent && !options.abstract) {\n    while (parent.$options.abstract && parent.$parent) {\n      parent = parent.$parent;\n    }\n    parent.$children.push(vm);\n  }\n\n  vm.$parent = parent;\n  vm.$root = parent ? parent.$root : vm;\n\n  vm.$children = [];\n  vm.$refs = {};\n\n  vm._watcher = null;\n  vm._inactive = null;\n  vm._directInactive = false;\n  vm._isMounted = false;\n  vm._isDestroyed = false;\n  vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n  Vue.prototype._update = function (vnode, hydrating) {\n    var vm = this;\n    var prevEl = vm.$el;\n    var prevVnode = vm._vnode;\n    var restoreActiveInstance = setActiveInstance(vm);\n    vm._vnode = vnode;\n    // Vue.prototype.__patch__ is injected in entry points\n    // based on the rendering backend used.\n    if (!prevVnode) {\n      // initial render\n      vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n    } else {\n      // updates\n      vm.$el = vm.__patch__(prevVnode, vnode);\n    }\n    restoreActiveInstance();\n    // update __vue__ reference\n    if (prevEl) {\n      prevEl.__vue__ = null;\n    }\n    if (vm.$el) {\n      vm.$el.__vue__ = vm;\n    }\n    // if parent is an HOC, update its $el as well\n    if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n      vm.$parent.$el = vm.$el;\n    }\n    // updated hook is called by the scheduler to ensure that children are\n    // updated in a parent's updated hook.\n  };\n\n  Vue.prototype.$forceUpdate = function () {\n    var vm = this;\n    if (vm._watcher) {\n      vm._watcher.update();\n    }\n  };\n\n  Vue.prototype.$destroy = function () {\n    var vm = this;\n    if (vm._isBeingDestroyed) {\n      return\n    }\n    callHook(vm, 'beforeDestroy');\n    vm._isBeingDestroyed = true;\n    // remove self from parent\n    var parent = vm.$parent;\n    if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n      remove(parent.$children, vm);\n    }\n    // teardown watchers\n    if (vm._watcher) {\n      vm._watcher.teardown();\n    }\n    var i = vm._watchers.length;\n    while (i--) {\n      vm._watchers[i].teardown();\n    }\n    // remove reference from data ob\n    // frozen object may not have observer.\n    if (vm._data.__ob__) {\n      vm._data.__ob__.vmCount--;\n    }\n    // call the last hook...\n    vm._isDestroyed = true;\n    // invoke destroy hooks on current rendered tree\n    vm.__patch__(vm._vnode, null);\n    // fire destroyed hook\n    callHook(vm, 'destroyed');\n    // turn off all instance listeners.\n    vm.$off();\n    // remove __vue__ reference\n    if (vm.$el) {\n      vm.$el.__vue__ = null;\n    }\n    // release circular reference (#6759)\n    if (vm.$vnode) {\n      vm.$vnode.parent = null;\n    }\n  };\n}\n\nfunction updateChildComponent (\n  vm,\n  propsData,\n  listeners,\n  parentVnode,\n  renderChildren\n) {\n  if (process.env.NODE_ENV !== 'production') {\n    isUpdatingChildComponent = true;\n  }\n\n  // determine whether component has slot children\n  // we need to do this before overwriting $options._renderChildren.\n\n  // check if there are dynamic scopedSlots (hand-written or compiled but with\n  // dynamic slot names). Static scoped slots compiled from template has the\n  // \"$stable\" marker.\n  var newScopedSlots = parentVnode.data.scopedSlots;\n  var oldScopedSlots = vm.$scopedSlots;\n  var hasDynamicScopedSlot = !!(\n    (newScopedSlots && !newScopedSlots.$stable) ||\n    (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n    (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n  );\n\n  // Any static slot children from the parent may have changed during parent's\n  // update. Dynamic scoped slots may also have changed. In such cases, a forced\n  // update is necessary to ensure correctness.\n  var needsForceUpdate = !!(\n    renderChildren ||               // has new static slots\n    vm.$options._renderChildren ||  // has old static slots\n    hasDynamicScopedSlot\n  );\n\n  vm.$options._parentVnode = parentVnode;\n  vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n  if (vm._vnode) { // update child tree's parent\n    vm._vnode.parent = parentVnode;\n  }\n  vm.$options._renderChildren = renderChildren;\n\n  // update $attrs and $listeners hash\n  // these are also reactive so they may trigger child update if the child\n  // used them during render\n  vm.$attrs = parentVnode.data.attrs || emptyObject;\n  vm.$listeners = listeners || emptyObject;\n\n  // update props\n  if (propsData && vm.$options.props) {\n    toggleObserving(false);\n    var props = vm._props;\n    var propKeys = vm.$options._propKeys || [];\n    for (var i = 0; i < propKeys.length; i++) {\n      var key = propKeys[i];\n      var propOptions = vm.$options.props; // wtf flow?\n      props[key] = validateProp(key, propOptions, propsData, vm);\n    }\n    toggleObserving(true);\n    // keep a copy of raw propsData\n    vm.$options.propsData = propsData;\n  }\n  \n  // fixed by xxxxxx update properties(mp runtime)\n  vm._$updateProperties && vm._$updateProperties(vm);\n  \n  // update listeners\n  listeners = listeners || emptyObject;\n  var oldListeners = vm.$options._parentListeners;\n  vm.$options._parentListeners = listeners;\n  updateComponentListeners(vm, listeners, oldListeners);\n\n  // resolve slots + force update if has children\n  if (needsForceUpdate) {\n    vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n    vm.$forceUpdate();\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    isUpdatingChildComponent = false;\n  }\n}\n\nfunction isInInactiveTree (vm) {\n  while (vm && (vm = vm.$parent)) {\n    if (vm._inactive) { return true }\n  }\n  return false\n}\n\nfunction activateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = false;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  } else if (vm._directInactive) {\n    return\n  }\n  if (vm._inactive || vm._inactive === null) {\n    vm._inactive = false;\n    for (var i = 0; i < vm.$children.length; i++) {\n      activateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'activated');\n  }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = true;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  }\n  if (!vm._inactive) {\n    vm._inactive = true;\n    for (var i = 0; i < vm.$children.length; i++) {\n      deactivateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'deactivated');\n  }\n}\n\nfunction callHook (vm, hook) {\n  // #7573 disable dep collection when invoking lifecycle hooks\n  pushTarget();\n  var handlers = vm.$options[hook];\n  var info = hook + \" hook\";\n  if (handlers) {\n    for (var i = 0, j = handlers.length; i < j; i++) {\n      invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n    }\n  }\n  if (vm._hasHookEvent) {\n    vm.$emit('hook:' + hook);\n  }\n  popTarget();\n}\n\n/*  */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n  index = queue.length = activatedChildren.length = 0;\n  has = {};\n  if (process.env.NODE_ENV !== 'production') {\n    circular = {};\n  }\n  waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n  var performance = window.performance;\n  if (\n    performance &&\n    typeof performance.now === 'function' &&\n    getNow() > document.createEvent('Event').timeStamp\n  ) {\n    // if the event timestamp, although evaluated AFTER the Date.now(), is\n    // smaller than it, it means the event is using a hi-res timestamp,\n    // and we need to use the hi-res version for event listener timestamps as\n    // well.\n    getNow = function () { return performance.now(); };\n  }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n  currentFlushTimestamp = getNow();\n  flushing = true;\n  var watcher, id;\n\n  // Sort queue before flush.\n  // This ensures that:\n  // 1. Components are updated from parent to child. (because parent is always\n  //    created before the child)\n  // 2. A component's user watchers are run before its render watcher (because\n  //    user watchers are created before the render watcher)\n  // 3. If a component is destroyed during a parent component's watcher run,\n  //    its watchers can be skipped.\n  queue.sort(function (a, b) { return a.id - b.id; });\n\n  // do not cache length because more watchers might be pushed\n  // as we run existing watchers\n  for (index = 0; index < queue.length; index++) {\n    watcher = queue[index];\n    if (watcher.before) {\n      watcher.before();\n    }\n    id = watcher.id;\n    has[id] = null;\n    watcher.run();\n    // in dev build, check and stop circular updates.\n    if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n      circular[id] = (circular[id] || 0) + 1;\n      if (circular[id] > MAX_UPDATE_COUNT) {\n        warn(\n          'You may have an infinite update loop ' + (\n            watcher.user\n              ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n              : \"in a component render function.\"\n          ),\n          watcher.vm\n        );\n        break\n      }\n    }\n  }\n\n  // keep copies of post queues before resetting state\n  var activatedQueue = activatedChildren.slice();\n  var updatedQueue = queue.slice();\n\n  resetSchedulerState();\n\n  // call component updated and activated hooks\n  callActivatedHooks(activatedQueue);\n  callUpdatedHooks(updatedQueue);\n\n  // devtool hook\n  /* istanbul ignore if */\n  if (devtools && config.devtools) {\n    devtools.emit('flush');\n  }\n}\n\nfunction callUpdatedHooks (queue) {\n  var i = queue.length;\n  while (i--) {\n    var watcher = queue[i];\n    var vm = watcher.vm;\n    if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n      callHook(vm, 'updated');\n    }\n  }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n  // setting _inactive to false here so that a render function can\n  // rely on checking whether it's in an inactive tree (e.g. router-view)\n  vm._inactive = false;\n  activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n  for (var i = 0; i < queue.length; i++) {\n    queue[i]._inactive = true;\n    activateChildComponent(queue[i], true /* true */);\n  }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n  var id = watcher.id;\n  if (has[id] == null) {\n    has[id] = true;\n    if (!flushing) {\n      queue.push(watcher);\n    } else {\n      // if already flushing, splice the watcher based on its id\n      // if already past its id, it will be run next immediately.\n      var i = queue.length - 1;\n      while (i > index && queue[i].id > watcher.id) {\n        i--;\n      }\n      queue.splice(i + 1, 0, watcher);\n    }\n    // queue the flush\n    if (!waiting) {\n      waiting = true;\n\n      if (process.env.NODE_ENV !== 'production' && !config.async) {\n        flushSchedulerQueue();\n        return\n      }\n      nextTick(flushSchedulerQueue);\n    }\n  }\n}\n\n/*  */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n  vm,\n  expOrFn,\n  cb,\n  options,\n  isRenderWatcher\n) {\n  this.vm = vm;\n  if (isRenderWatcher) {\n    vm._watcher = this;\n  }\n  vm._watchers.push(this);\n  // options\n  if (options) {\n    this.deep = !!options.deep;\n    this.user = !!options.user;\n    this.lazy = !!options.lazy;\n    this.sync = !!options.sync;\n    this.before = options.before;\n  } else {\n    this.deep = this.user = this.lazy = this.sync = false;\n  }\n  this.cb = cb;\n  this.id = ++uid$2; // uid for batching\n  this.active = true;\n  this.dirty = this.lazy; // for lazy watchers\n  this.deps = [];\n  this.newDeps = [];\n  this.depIds = new _Set();\n  this.newDepIds = new _Set();\n  this.expression = process.env.NODE_ENV !== 'production'\n    ? expOrFn.toString()\n    : '';\n  // parse expression for getter\n  if (typeof expOrFn === 'function') {\n    this.getter = expOrFn;\n  } else {\n    this.getter = parsePath(expOrFn);\n    if (!this.getter) {\n      this.getter = noop;\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n        'Watcher only accepts simple dot-delimited paths. ' +\n        'For full control, use a function instead.',\n        vm\n      );\n    }\n  }\n  this.value = this.lazy\n    ? undefined\n    : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n  pushTarget(this);\n  var value;\n  var vm = this.vm;\n  try {\n    value = this.getter.call(vm, vm);\n  } catch (e) {\n    if (this.user) {\n      handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n    } else {\n      throw e\n    }\n  } finally {\n    // \"touch\" every property so they are all tracked as\n    // dependencies for deep watching\n    if (this.deep) {\n      traverse(value);\n    }\n    popTarget();\n    this.cleanupDeps();\n  }\n  return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n  var id = dep.id;\n  if (!this.newDepIds.has(id)) {\n    this.newDepIds.add(id);\n    this.newDeps.push(dep);\n    if (!this.depIds.has(id)) {\n      dep.addSub(this);\n    }\n  }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n  var i = this.deps.length;\n  while (i--) {\n    var dep = this.deps[i];\n    if (!this.newDepIds.has(dep.id)) {\n      dep.removeSub(this);\n    }\n  }\n  var tmp = this.depIds;\n  this.depIds = this.newDepIds;\n  this.newDepIds = tmp;\n  this.newDepIds.clear();\n  tmp = this.deps;\n  this.deps = this.newDeps;\n  this.newDeps = tmp;\n  this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n  /* istanbul ignore else */\n  if (this.lazy) {\n    this.dirty = true;\n  } else if (this.sync) {\n    this.run();\n  } else {\n    queueWatcher(this);\n  }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n  if (this.active) {\n    var value = this.get();\n    if (\n      value !== this.value ||\n      // Deep watchers and watchers on Object/Arrays should fire even\n      // when the value is the same, because the value may\n      // have mutated.\n      isObject(value) ||\n      this.deep\n    ) {\n      // set new value\n      var oldValue = this.value;\n      this.value = value;\n      if (this.user) {\n        try {\n          this.cb.call(this.vm, value, oldValue);\n        } catch (e) {\n          handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n        }\n      } else {\n        this.cb.call(this.vm, value, oldValue);\n      }\n    }\n  }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n  this.value = this.get();\n  this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n  var i = this.deps.length;\n  while (i--) {\n    this.deps[i].depend();\n  }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n  if (this.active) {\n    // remove self from vm's watcher list\n    // this is a somewhat expensive operation so we skip it\n    // if the vm is being destroyed.\n    if (!this.vm._isBeingDestroyed) {\n      remove(this.vm._watchers, this);\n    }\n    var i = this.deps.length;\n    while (i--) {\n      this.deps[i].removeSub(this);\n    }\n    this.active = false;\n  }\n};\n\n/*  */\n\nvar sharedPropertyDefinition = {\n  enumerable: true,\n  configurable: true,\n  get: noop,\n  set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n  sharedPropertyDefinition.get = function proxyGetter () {\n    return this[sourceKey][key]\n  };\n  sharedPropertyDefinition.set = function proxySetter (val) {\n    this[sourceKey][key] = val;\n  };\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n  vm._watchers = [];\n  var opts = vm.$options;\n  if (opts.props) { initProps(vm, opts.props); }\n  if (opts.methods) { initMethods(vm, opts.methods); }\n  if (opts.data) {\n    initData(vm);\n  } else {\n    observe(vm._data = {}, true /* asRootData */);\n  }\n  if (opts.computed) { initComputed(vm, opts.computed); }\n  if (opts.watch && opts.watch !== nativeWatch) {\n    initWatch(vm, opts.watch);\n  }\n}\n\nfunction initProps (vm, propsOptions) {\n  var propsData = vm.$options.propsData || {};\n  var props = vm._props = {};\n  // cache prop keys so that future props updates can iterate using Array\n  // instead of dynamic object key enumeration.\n  var keys = vm.$options._propKeys = [];\n  var isRoot = !vm.$parent;\n  // root instance props should be converted\n  if (!isRoot) {\n    toggleObserving(false);\n  }\n  var loop = function ( key ) {\n    keys.push(key);\n    var value = validateProp(key, propsOptions, propsData, vm);\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== 'production') {\n      var hyphenatedKey = hyphenate(key);\n      if (isReservedAttribute(hyphenatedKey) ||\n          config.isReservedAttr(hyphenatedKey)) {\n        warn(\n          (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n          vm\n        );\n      }\n      defineReactive$$1(props, key, value, function () {\n        if (!isRoot && !isUpdatingChildComponent) {\n          {\n            if(vm.mpHost === 'mp-baidu' || vm.mpHost === 'mp-kuaishou'){//百度、快手 observer 在 setData callback 之后触发,直接忽略该 warn\n                return\n            }\n            //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警\n            if(\n                key === 'value' && \n                Array.isArray(vm.$options.behaviors) &&\n                vm.$options.behaviors.indexOf('uni://form-field') !== -1\n              ){\n              return\n            }\n            if(vm._getFormData){\n              return\n            }\n            var $parent = vm.$parent;\n            while($parent){\n              if($parent.__next_tick_pending){\n                return  \n              }\n              $parent = $parent.$parent;\n            }\n          }\n          warn(\n            \"Avoid mutating a prop directly since the value will be \" +\n            \"overwritten whenever the parent component re-renders. \" +\n            \"Instead, use a data or computed property based on the prop's \" +\n            \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        }\n      });\n    } else {\n      defineReactive$$1(props, key, value);\n    }\n    // static props are already proxied on the component's prototype\n    // during Vue.extend(). We only need to proxy props defined at\n    // instantiation here.\n    if (!(key in vm)) {\n      proxy(vm, \"_props\", key);\n    }\n  };\n\n  for (var key in propsOptions) loop( key );\n  toggleObserving(true);\n}\n\nfunction initData (vm) {\n  var data = vm.$options.data;\n  data = vm._data = typeof data === 'function'\n    ? getData(data, vm)\n    : data || {};\n  if (!isPlainObject(data)) {\n    data = {};\n    process.env.NODE_ENV !== 'production' && warn(\n      'data functions should return an object:\\n' +\n      'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n      vm\n    );\n  }\n  // proxy data on instance\n  var keys = Object.keys(data);\n  var props = vm.$options.props;\n  var methods = vm.$options.methods;\n  var i = keys.length;\n  while (i--) {\n    var key = keys[i];\n    if (process.env.NODE_ENV !== 'production') {\n      if (methods && hasOwn(methods, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n          vm\n        );\n      }\n    }\n    if (props && hasOwn(props, key)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n        \"Use prop default value instead.\",\n        vm\n      );\n    } else if (!isReserved(key)) {\n      proxy(vm, \"_data\", key);\n    }\n  }\n  // observe data\n  observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n  // #7573 disable dep collection when invoking data getters\n  pushTarget();\n  try {\n    return data.call(vm, vm)\n  } catch (e) {\n    handleError(e, vm, \"data()\");\n    return {}\n  } finally {\n    popTarget();\n  }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n  // $flow-disable-line\n  var watchers = vm._computedWatchers = Object.create(null);\n  // computed properties are just getters during SSR\n  var isSSR = isServerRendering();\n\n  for (var key in computed) {\n    var userDef = computed[key];\n    var getter = typeof userDef === 'function' ? userDef : userDef.get;\n    if (process.env.NODE_ENV !== 'production' && getter == null) {\n      warn(\n        (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n        vm\n      );\n    }\n\n    if (!isSSR) {\n      // create internal watcher for the computed property.\n      watchers[key] = new Watcher(\n        vm,\n        getter || noop,\n        noop,\n        computedWatcherOptions\n      );\n    }\n\n    // component-defined computed properties are already defined on the\n    // component prototype. We only need to define computed properties defined\n    // at instantiation here.\n    if (!(key in vm)) {\n      defineComputed(vm, key, userDef);\n    } else if (process.env.NODE_ENV !== 'production') {\n      if (key in vm.$data) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n      } else if (vm.$options.props && key in vm.$options.props) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n      }\n    }\n  }\n}\n\nfunction defineComputed (\n  target,\n  key,\n  userDef\n) {\n  var shouldCache = !isServerRendering();\n  if (typeof userDef === 'function') {\n    sharedPropertyDefinition.get = shouldCache\n      ? createComputedGetter(key)\n      : createGetterInvoker(userDef);\n    sharedPropertyDefinition.set = noop;\n  } else {\n    sharedPropertyDefinition.get = userDef.get\n      ? shouldCache && userDef.cache !== false\n        ? createComputedGetter(key)\n        : createGetterInvoker(userDef.get)\n      : noop;\n    sharedPropertyDefinition.set = userDef.set || noop;\n  }\n  if (process.env.NODE_ENV !== 'production' &&\n      sharedPropertyDefinition.set === noop) {\n    sharedPropertyDefinition.set = function () {\n      warn(\n        (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n        this\n      );\n    };\n  }\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n  return function computedGetter () {\n    var watcher = this._computedWatchers && this._computedWatchers[key];\n    if (watcher) {\n      if (watcher.dirty) {\n        watcher.evaluate();\n      }\n      if (Dep.SharedObject.target) {// fixed by xxxxxx\n        watcher.depend();\n      }\n      return watcher.value\n    }\n  }\n}\n\nfunction createGetterInvoker(fn) {\n  return function computedGetter () {\n    return fn.call(this, this)\n  }\n}\n\nfunction initMethods (vm, methods) {\n  var props = vm.$options.props;\n  for (var key in methods) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof methods[key] !== 'function') {\n        warn(\n          \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n          \"Did you reference the function correctly?\",\n          vm\n        );\n      }\n      if (props && hasOwn(props, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n          vm\n        );\n      }\n      if ((key in vm) && isReserved(key)) {\n        warn(\n          \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n          \"Avoid defining component methods that start with _ or $.\"\n        );\n      }\n    }\n    vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n  }\n}\n\nfunction initWatch (vm, watch) {\n  for (var key in watch) {\n    var handler = watch[key];\n    if (Array.isArray(handler)) {\n      for (var i = 0; i < handler.length; i++) {\n        createWatcher(vm, key, handler[i]);\n      }\n    } else {\n      createWatcher(vm, key, handler);\n    }\n  }\n}\n\nfunction createWatcher (\n  vm,\n  expOrFn,\n  handler,\n  options\n) {\n  if (isPlainObject(handler)) {\n    options = handler;\n    handler = handler.handler;\n  }\n  if (typeof handler === 'string') {\n    handler = vm[handler];\n  }\n  return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n  // flow somehow has problems with directly declared definition object\n  // when using Object.defineProperty, so we have to procedurally build up\n  // the object here.\n  var dataDef = {};\n  dataDef.get = function () { return this._data };\n  var propsDef = {};\n  propsDef.get = function () { return this._props };\n  if (process.env.NODE_ENV !== 'production') {\n    dataDef.set = function () {\n      warn(\n        'Avoid replacing instance root $data. ' +\n        'Use nested data properties instead.',\n        this\n      );\n    };\n    propsDef.set = function () {\n      warn(\"$props is readonly.\", this);\n    };\n  }\n  Object.defineProperty(Vue.prototype, '$data', dataDef);\n  Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n  Vue.prototype.$set = set;\n  Vue.prototype.$delete = del;\n\n  Vue.prototype.$watch = function (\n    expOrFn,\n    cb,\n    options\n  ) {\n    var vm = this;\n    if (isPlainObject(cb)) {\n      return createWatcher(vm, expOrFn, cb, options)\n    }\n    options = options || {};\n    options.user = true;\n    var watcher = new Watcher(vm, expOrFn, cb, options);\n    if (options.immediate) {\n      try {\n        cb.call(vm, watcher.value);\n      } catch (error) {\n        handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n      }\n    }\n    return function unwatchFn () {\n      watcher.teardown();\n    }\n  };\n}\n\n/*  */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n  Vue.prototype._init = function (options) {\n    var vm = this;\n    // a uid\n    vm._uid = uid$3++;\n\n    var startTag, endTag;\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n      startTag = \"vue-perf-start:\" + (vm._uid);\n      endTag = \"vue-perf-end:\" + (vm._uid);\n      mark(startTag);\n    }\n\n    // a flag to avoid this being observed\n    vm._isVue = true;\n    // merge options\n    if (options && options._isComponent) {\n      // optimize internal component instantiation\n      // since dynamic options merging is pretty slow, and none of the\n      // internal component options needs special treatment.\n      initInternalComponent(vm, options);\n    } else {\n      vm.$options = mergeOptions(\n        resolveConstructorOptions(vm.constructor),\n        options || {},\n        vm\n      );\n    }\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== 'production') {\n      initProxy(vm);\n    } else {\n      vm._renderProxy = vm;\n    }\n    // expose real self\n    vm._self = vm;\n    initLifecycle(vm);\n    initEvents(vm);\n    initRender(vm);\n    callHook(vm, 'beforeCreate');\n    !vm._$fallback && initInjections(vm); // resolve injections before data/props  \n    initState(vm);\n    !vm._$fallback && initProvide(vm); // resolve provide after data/props\n    !vm._$fallback && callHook(vm, 'created');      \n\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n      vm._name = formatComponentName(vm, false);\n      mark(endTag);\n      measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n    }\n\n    if (vm.$options.el) {\n      vm.$mount(vm.$options.el);\n    }\n  };\n}\n\nfunction initInternalComponent (vm, options) {\n  var opts = vm.$options = Object.create(vm.constructor.options);\n  // doing this because it's faster than dynamic enumeration.\n  var parentVnode = options._parentVnode;\n  opts.parent = options.parent;\n  opts._parentVnode = parentVnode;\n\n  var vnodeComponentOptions = parentVnode.componentOptions;\n  opts.propsData = vnodeComponentOptions.propsData;\n  opts._parentListeners = vnodeComponentOptions.listeners;\n  opts._renderChildren = vnodeComponentOptions.children;\n  opts._componentTag = vnodeComponentOptions.tag;\n\n  if (options.render) {\n    opts.render = options.render;\n    opts.staticRenderFns = options.staticRenderFns;\n  }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n  var options = Ctor.options;\n  if (Ctor.super) {\n    var superOptions = resolveConstructorOptions(Ctor.super);\n    var cachedSuperOptions = Ctor.superOptions;\n    if (superOptions !== cachedSuperOptions) {\n      // super option changed,\n      // need to resolve new options.\n      Ctor.superOptions = superOptions;\n      // check if there are any late-modified/attached options (#4976)\n      var modifiedOptions = resolveModifiedOptions(Ctor);\n      // update base extend options\n      if (modifiedOptions) {\n        extend(Ctor.extendOptions, modifiedOptions);\n      }\n      options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n      if (options.name) {\n        options.components[options.name] = Ctor;\n      }\n    }\n  }\n  return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n  var modified;\n  var latest = Ctor.options;\n  var sealed = Ctor.sealedOptions;\n  for (var key in latest) {\n    if (latest[key] !== sealed[key]) {\n      if (!modified) { modified = {}; }\n      modified[key] = latest[key];\n    }\n  }\n  return modified\n}\n\nfunction Vue (options) {\n  if (process.env.NODE_ENV !== 'production' &&\n    !(this instanceof Vue)\n  ) {\n    warn('Vue is a constructor and should be called with the `new` keyword');\n  }\n  this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/*  */\n\nfunction initUse (Vue) {\n  Vue.use = function (plugin) {\n    var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n    if (installedPlugins.indexOf(plugin) > -1) {\n      return this\n    }\n\n    // additional parameters\n    var args = toArray(arguments, 1);\n    args.unshift(this);\n    if (typeof plugin.install === 'function') {\n      plugin.install.apply(plugin, args);\n    } else if (typeof plugin === 'function') {\n      plugin.apply(null, args);\n    }\n    installedPlugins.push(plugin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initMixin$1 (Vue) {\n  Vue.mixin = function (mixin) {\n    this.options = mergeOptions(this.options, mixin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initExtend (Vue) {\n  /**\n   * Each instance constructor, including Vue, has a unique\n   * cid. This enables us to create wrapped \"child\n   * constructors\" for prototypal inheritance and cache them.\n   */\n  Vue.cid = 0;\n  var cid = 1;\n\n  /**\n   * Class inheritance\n   */\n  Vue.extend = function (extendOptions) {\n    extendOptions = extendOptions || {};\n    var Super = this;\n    var SuperId = Super.cid;\n    var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n    if (cachedCtors[SuperId]) {\n      return cachedCtors[SuperId]\n    }\n\n    var name = extendOptions.name || Super.options.name;\n    if (process.env.NODE_ENV !== 'production' && name) {\n      validateComponentName(name);\n    }\n\n    var Sub = function VueComponent (options) {\n      this._init(options);\n    };\n    Sub.prototype = Object.create(Super.prototype);\n    Sub.prototype.constructor = Sub;\n    Sub.cid = cid++;\n    Sub.options = mergeOptions(\n      Super.options,\n      extendOptions\n    );\n    Sub['super'] = Super;\n\n    // For props and computed properties, we define the proxy getters on\n    // the Vue instances at extension time, on the extended prototype. This\n    // avoids Object.defineProperty calls for each instance created.\n    if (Sub.options.props) {\n      initProps$1(Sub);\n    }\n    if (Sub.options.computed) {\n      initComputed$1(Sub);\n    }\n\n    // allow further extension/mixin/plugin usage\n    Sub.extend = Super.extend;\n    Sub.mixin = Super.mixin;\n    Sub.use = Super.use;\n\n    // create asset registers, so extended classes\n    // can have their private assets too.\n    ASSET_TYPES.forEach(function (type) {\n      Sub[type] = Super[type];\n    });\n    // enable recursive self-lookup\n    if (name) {\n      Sub.options.components[name] = Sub;\n    }\n\n    // keep a reference to the super options at extension time.\n    // later at instantiation we can check if Super's options have\n    // been updated.\n    Sub.superOptions = Super.options;\n    Sub.extendOptions = extendOptions;\n    Sub.sealedOptions = extend({}, Sub.options);\n\n    // cache constructor\n    cachedCtors[SuperId] = Sub;\n    return Sub\n  };\n}\n\nfunction initProps$1 (Comp) {\n  var props = Comp.options.props;\n  for (var key in props) {\n    proxy(Comp.prototype, \"_props\", key);\n  }\n}\n\nfunction initComputed$1 (Comp) {\n  var computed = Comp.options.computed;\n  for (var key in computed) {\n    defineComputed(Comp.prototype, key, computed[key]);\n  }\n}\n\n/*  */\n\nfunction initAssetRegisters (Vue) {\n  /**\n   * Create asset registration methods.\n   */\n  ASSET_TYPES.forEach(function (type) {\n    Vue[type] = function (\n      id,\n      definition\n    ) {\n      if (!definition) {\n        return this.options[type + 's'][id]\n      } else {\n        /* istanbul ignore if */\n        if (process.env.NODE_ENV !== 'production' && type === 'component') {\n          validateComponentName(id);\n        }\n        if (type === 'component' && isPlainObject(definition)) {\n          definition.name = definition.name || id;\n          definition = this.options._base.extend(definition);\n        }\n        if (type === 'directive' && typeof definition === 'function') {\n          definition = { bind: definition, update: definition };\n        }\n        this.options[type + 's'][id] = definition;\n        return definition\n      }\n    };\n  });\n}\n\n/*  */\n\n\n\nfunction getComponentName (opts) {\n  return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n  if (Array.isArray(pattern)) {\n    return pattern.indexOf(name) > -1\n  } else if (typeof pattern === 'string') {\n    return pattern.split(',').indexOf(name) > -1\n  } else if (isRegExp(pattern)) {\n    return pattern.test(name)\n  }\n  /* istanbul ignore next */\n  return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n  var cache = keepAliveInstance.cache;\n  var keys = keepAliveInstance.keys;\n  var _vnode = keepAliveInstance._vnode;\n  for (var key in cache) {\n    var cachedNode = cache[key];\n    if (cachedNode) {\n      var name = getComponentName(cachedNode.componentOptions);\n      if (name && !filter(name)) {\n        pruneCacheEntry(cache, key, keys, _vnode);\n      }\n    }\n  }\n}\n\nfunction pruneCacheEntry (\n  cache,\n  key,\n  keys,\n  current\n) {\n  var cached$$1 = cache[key];\n  if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n    cached$$1.componentInstance.$destroy();\n  }\n  cache[key] = null;\n  remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n  name: 'keep-alive',\n  abstract: true,\n\n  props: {\n    include: patternTypes,\n    exclude: patternTypes,\n    max: [String, Number]\n  },\n\n  created: function created () {\n    this.cache = Object.create(null);\n    this.keys = [];\n  },\n\n  destroyed: function destroyed () {\n    for (var key in this.cache) {\n      pruneCacheEntry(this.cache, key, this.keys);\n    }\n  },\n\n  mounted: function mounted () {\n    var this$1 = this;\n\n    this.$watch('include', function (val) {\n      pruneCache(this$1, function (name) { return matches(val, name); });\n    });\n    this.$watch('exclude', function (val) {\n      pruneCache(this$1, function (name) { return !matches(val, name); });\n    });\n  },\n\n  render: function render () {\n    var slot = this.$slots.default;\n    var vnode = getFirstComponentChild(slot);\n    var componentOptions = vnode && vnode.componentOptions;\n    if (componentOptions) {\n      // check pattern\n      var name = getComponentName(componentOptions);\n      var ref = this;\n      var include = ref.include;\n      var exclude = ref.exclude;\n      if (\n        // not included\n        (include && (!name || !matches(include, name))) ||\n        // excluded\n        (exclude && name && matches(exclude, name))\n      ) {\n        return vnode\n      }\n\n      var ref$1 = this;\n      var cache = ref$1.cache;\n      var keys = ref$1.keys;\n      var key = vnode.key == null\n        // same constructor may get registered as different local components\n        // so cid alone is not enough (#3269)\n        ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n        : vnode.key;\n      if (cache[key]) {\n        vnode.componentInstance = cache[key].componentInstance;\n        // make current key freshest\n        remove(keys, key);\n        keys.push(key);\n      } else {\n        cache[key] = vnode;\n        keys.push(key);\n        // prune oldest entry\n        if (this.max && keys.length > parseInt(this.max)) {\n          pruneCacheEntry(cache, keys[0], keys, this._vnode);\n        }\n      }\n\n      vnode.data.keepAlive = true;\n    }\n    return vnode || (slot && slot[0])\n  }\n};\n\nvar builtInComponents = {\n  KeepAlive: KeepAlive\n};\n\n/*  */\n\nfunction initGlobalAPI (Vue) {\n  // config\n  var configDef = {};\n  configDef.get = function () { return config; };\n  if (process.env.NODE_ENV !== 'production') {\n    configDef.set = function () {\n      warn(\n        'Do not replace the Vue.config object, set individual fields instead.'\n      );\n    };\n  }\n  Object.defineProperty(Vue, 'config', configDef);\n\n  // exposed util methods.\n  // NOTE: these are not considered part of the public API - avoid relying on\n  // them unless you are aware of the risk.\n  Vue.util = {\n    warn: warn,\n    extend: extend,\n    mergeOptions: mergeOptions,\n    defineReactive: defineReactive$$1\n  };\n\n  Vue.set = set;\n  Vue.delete = del;\n  Vue.nextTick = nextTick;\n\n  // 2.6 explicit observable API\n  Vue.observable = function (obj) {\n    observe(obj);\n    return obj\n  };\n\n  Vue.options = Object.create(null);\n  ASSET_TYPES.forEach(function (type) {\n    Vue.options[type + 's'] = Object.create(null);\n  });\n\n  // this is used to identify the \"base\" constructor to extend all plain-object\n  // components with in Weex's multi-instance scenarios.\n  Vue.options._base = Vue;\n\n  extend(Vue.options.components, builtInComponents);\n\n  initUse(Vue);\n  initMixin$1(Vue);\n  initExtend(Vue);\n  initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n  get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n  get: function get () {\n    /* istanbul ignore next */\n    return this.$vnode && this.$vnode.ssrContext\n  }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n  value: FunctionalRenderContext\n});\n\nVue.version = '2.6.11';\n\n/**\n * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js\n */\nvar ARRAYTYPE = '[object Array]';\nvar OBJECTTYPE = '[object Object]';\n// const FUNCTIONTYPE = '[object Function]'\n\nfunction diff(current, pre) {\n    var result = {};\n    syncKeys(current, pre);\n    _diff(current, pre, '', result);\n    return result\n}\n\nfunction syncKeys(current, pre) {\n    if (current === pre) { return }\n    var rootCurrentType = type(current);\n    var rootPreType = type(pre);\n    if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n        if(Object.keys(current).length >= Object.keys(pre).length){\n            for (var key in pre) {\n                var currentValue = current[key];\n                if (currentValue === undefined) {\n                    current[key] = null;\n                } else {\n                    syncKeys(currentValue, pre[key]);\n                }\n            }\n        }\n    } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n        if (current.length >= pre.length) {\n            pre.forEach(function (item, index) {\n                syncKeys(current[index], item);\n            });\n        }\n    }\n}\n\nfunction _diff(current, pre, path, result) {\n    if (current === pre) { return }\n    var rootCurrentType = type(current);\n    var rootPreType = type(pre);\n    if (rootCurrentType == OBJECTTYPE) {\n        if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n            setResult(result, path, current);\n        } else {\n            var loop = function ( key ) {\n                var currentValue = current[key];\n                var preValue = pre[key];\n                var currentType = type(currentValue);\n                var preType = type(preValue);\n                if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n                    // NOTE 此处将 != 修改为 !==。涉及地方太多恐怕测试不到,如果出现数据对比问题,将其修改回来。\n                    if (currentValue !== pre[key]) {\n                        setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n                    }\n                } else if (currentType == ARRAYTYPE) {\n                    if (preType != ARRAYTYPE) {\n                        setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n                    } else {\n                        if (currentValue.length < preValue.length) {\n                            setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n                        } else {\n                            currentValue.forEach(function (item, index) {\n                                _diff(item, preValue[index], (path == '' ? '' : path + \".\") + key + '[' + index + ']', result);\n                            });\n                        }\n                    }\n                } else if (currentType == OBJECTTYPE) {\n                    if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n                        setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n                    } else {\n                        for (var subKey in currentValue) {\n                            _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + \".\") + key + '.' + subKey, result);\n                        }\n                    }\n                }\n            };\n\n            for (var key in current) loop( key );\n        }\n    } else if (rootCurrentType == ARRAYTYPE) {\n        if (rootPreType != ARRAYTYPE) {\n            setResult(result, path, current);\n        } else {\n            if (current.length < pre.length) {\n                setResult(result, path, current);\n            } else {\n                current.forEach(function (item, index) {\n                    _diff(item, pre[index], path + '[' + index + ']', result);\n                });\n            }\n        }\n    } else {\n        setResult(result, path, current);\n    }\n}\n\nfunction setResult(result, k, v) {\n    // if (type(v) != FUNCTIONTYPE) {\n        result[k] = v;\n    // }\n}\n\nfunction type(obj) {\n    return Object.prototype.toString.call(obj)\n}\n\n/*  */\n\nfunction flushCallbacks$1(vm) {\n    if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {\n        if (process.env.VUE_APP_DEBUG) {\n            var mpInstance = vm.$scope;\n            console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\n                ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');\n        }\n        var copies = vm.__next_tick_callbacks.slice(0);\n        vm.__next_tick_callbacks.length = 0;\n        for (var i = 0; i < copies.length; i++) {\n            copies[i]();\n        }\n    }\n}\n\nfunction hasRenderWatcher(vm) {\n    return queue.find(function (watcher) { return vm._watcher === watcher; })\n}\n\nfunction nextTick$1(vm, cb) {\n    //1.nextTick 之前 已 setData 且 setData 还未回调完成\n    //2.nextTick 之前存在 render watcher\n    if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {\n        if(process.env.VUE_APP_DEBUG){\n            var mpInstance = vm.$scope;\n            console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\n                ']:nextVueTick');\n        }\n        return nextTick(cb, vm)\n    }else{\n        if(process.env.VUE_APP_DEBUG){\n            var mpInstance$1 = vm.$scope;\n            console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +\n                ']:nextMPTick');\n        }\n    }\n    var _resolve;\n    if (!vm.__next_tick_callbacks) {\n        vm.__next_tick_callbacks = [];\n    }\n    vm.__next_tick_callbacks.push(function () {\n        if (cb) {\n            try {\n                cb.call(vm);\n            } catch (e) {\n                handleError(e, vm, 'nextTick');\n            }\n        } else if (_resolve) {\n            _resolve(vm);\n        }\n    });\n    // $flow-disable-line\n    if (!cb && typeof Promise !== 'undefined') {\n        return new Promise(function (resolve) {\n            _resolve = resolve;\n        })\n    }\n}\n\n/*  */\n\nfunction cloneWithData(vm) {\n  // 确保当前 vm 所有数据被同步\n  var ret = Object.create(null);\n  var dataKeys = [].concat(\n    Object.keys(vm._data || {}),\n    Object.keys(vm._computedWatchers || {}));\n\n  dataKeys.reduce(function(ret, key) {\n    ret[key] = vm[key];\n    return ret\n  }, ret);\n\n  // vue-composition-api\n  var compositionApiState = vm.__composition_api_state__ || vm.__secret_vfa_state__;\n  var rawBindings = compositionApiState && compositionApiState.rawBindings;\n  if (rawBindings) {\n    Object.keys(rawBindings).forEach(function (key) {\n      ret[key] = vm[key];\n    });\n  }\n\n  //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据\n  Object.assign(ret, vm.$mp.data || {});\n  if (\n    Array.isArray(vm.$options.behaviors) &&\n    vm.$options.behaviors.indexOf('uni://form-field') !== -1\n  ) { //form-field\n    ret['name'] = vm.name;\n    ret['value'] = vm.value;\n  }\n\n  return JSON.parse(JSON.stringify(ret))\n}\n\nvar patch = function(oldVnode, vnode) {\n  var this$1 = this;\n\n  if (vnode === null) { //destroy\n    return\n  }\n  if (this.mpType === 'page' || this.mpType === 'component') {\n    var mpInstance = this.$scope;\n    var data = Object.create(null);\n    try {\n      data = cloneWithData(this);\n    } catch (err) {\n      console.error(err);\n    }\n    data.__webviewId__ = mpInstance.data.__webviewId__;\n    var mpData = Object.create(null);\n    Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据\n      mpData[key] = mpInstance.data[key];\n    });\n    var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);\n    if (Object.keys(diffData).length) {\n      if (process.env.VUE_APP_DEBUG) {\n        console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +\n          ']差量更新',\n          JSON.stringify(diffData));\n      }\n      this.__next_tick_pending = true;\n      mpInstance.setData(diffData, function () {\n        this$1.__next_tick_pending = false;\n        flushCallbacks$1(this$1);\n      });\n    } else {\n      flushCallbacks$1(this);\n    }\n  }\n};\n\n/*  */\n\nfunction createEmptyRender() {\n\n}\n\nfunction mountComponent$1(\n  vm,\n  el,\n  hydrating\n) {\n  if (!vm.mpType) {//main.js 中的 new Vue\n    return vm\n  }\n  if (vm.mpType === 'app') {\n    vm.$options.render = createEmptyRender;\n  }\n  if (!vm.$options.render) {\n    vm.$options.render = createEmptyRender;\n    if (process.env.NODE_ENV !== 'production') {\n      /* istanbul ignore if */\n      if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n        vm.$options.el || el) {\n        warn(\n          'You are using the runtime-only build of Vue where the template ' +\n          'compiler is not available. Either pre-compile the templates into ' +\n          'render functions, or use the compiler-included build.',\n          vm\n        );\n      } else {\n        warn(\n          'Failed to mount component: template or render function not defined.',\n          vm\n        );\n      }\n    }\n  }\n  \n  !vm._$fallback && callHook(vm, 'beforeMount');\n\n  var updateComponent = function () {\n    vm._update(vm._render(), hydrating);\n  };\n\n  // we set this to vm._watcher inside the watcher's constructor\n  // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n  // component's mounted hook), which relies on vm._watcher being already defined\n  new Watcher(vm, updateComponent, noop, {\n    before: function before() {\n      if (vm._isMounted && !vm._isDestroyed) {\n        callHook(vm, 'beforeUpdate');\n      }\n    }\n  }, true /* isRenderWatcher */);\n  hydrating = false;\n  return vm\n}\n\n/*  */\n\nfunction renderClass (\n  staticClass,\n  dynamicClass\n) {\n  if (isDef(staticClass) || isDef(dynamicClass)) {\n    return concat(staticClass, stringifyClass(dynamicClass))\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction concat (a, b) {\n  return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n  if (Array.isArray(value)) {\n    return stringifyArray(value)\n  }\n  if (isObject(value)) {\n    return stringifyObject(value)\n  }\n  if (typeof value === 'string') {\n    return value\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction stringifyArray (value) {\n  var res = '';\n  var stringified;\n  for (var i = 0, l = value.length; i < l; i++) {\n    if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n      if (res) { res += ' '; }\n      res += stringified;\n    }\n  }\n  return res\n}\n\nfunction stringifyObject (value) {\n  var res = '';\n  for (var key in value) {\n    if (value[key]) {\n      if (res) { res += ' '; }\n      res += key;\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar parseStyleText = cached(function (cssText) {\n  var res = {};\n  var listDelimiter = /;(?![^(]*\\))/g;\n  var propertyDelimiter = /:(.+)/;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      var tmp = item.split(propertyDelimiter);\n      tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return res\n});\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n  if (Array.isArray(bindingStyle)) {\n    return toObject(bindingStyle)\n  }\n  if (typeof bindingStyle === 'string') {\n    return parseStyleText(bindingStyle)\n  }\n  return bindingStyle\n}\n\n/*  */\n\nvar MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent'];\n\nfunction getTarget(obj, path) {\n  var parts = path.split('.');\n  var key = parts[0];\n  if (key.indexOf('__$n') === 0) { //number index\n    key = parseInt(key.replace('__$n', ''));\n  }\n  if (parts.length === 1) {\n    return obj[key]\n  }\n  return getTarget(obj[key], parts.slice(1).join('.'))\n}\n\nfunction internalMixin(Vue) {\n\n  Vue.config.errorHandler = function(err, vm, info) {\n    Vue.util.warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n    console.error(err);\n    /* eslint-disable no-undef */\n    var app = typeof getApp === 'function' && getApp();\n    if (app && app.onError) {\n      app.onError(err);\n    }\n  };\n\n  var oldEmit = Vue.prototype.$emit;\n\n  Vue.prototype.$emit = function(event) {\n    if (this.$scope && event) {\n      this.$scope['triggerEvent'](event, {\n        __args__: toArray(arguments, 1)\n      });\n    }\n    return oldEmit.apply(this, arguments)\n  };\n\n  Vue.prototype.$nextTick = function(fn) {\n    return nextTick$1(this, fn)\n  };\n\n  MP_METHODS.forEach(function (method) {\n    Vue.prototype[method] = function(args) {\n      if (this.$scope && this.$scope[method]) {\n        return this.$scope[method](args)\n      }\n      // mp-alipay\n      if (typeof my === 'undefined') {\n        return\n      }\n      if (method === 'createSelectorQuery') {\n        /* eslint-disable no-undef */\n        return my.createSelectorQuery(args)\n      } else if (method === 'createIntersectionObserver') {\n        /* eslint-disable no-undef */\n        return my.createIntersectionObserver(args)\n      }\n      // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent\n    };\n  });\n\n  Vue.prototype.__init_provide = initProvide;\n\n  Vue.prototype.__init_injections = initInjections;\n\n  Vue.prototype.__call_hook = function(hook, args) {\n    var vm = this;\n    // #7573 disable dep collection when invoking lifecycle hooks\n    pushTarget();\n    var handlers = vm.$options[hook];\n    var info = hook + \" hook\";\n    var ret;\n    if (handlers) {\n      for (var i = 0, j = handlers.length; i < j; i++) {\n        ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info);\n      }\n    }\n    if (vm._hasHookEvent) {\n      vm.$emit('hook:' + hook, args);\n    }\n    popTarget();\n    return ret\n  };\n\n  Vue.prototype.__set_model = function(target, key, value, modifiers) {\n    if (Array.isArray(modifiers)) {\n      if (modifiers.indexOf('trim') !== -1) {\n        value = value.trim();\n      }\n      if (modifiers.indexOf('number') !== -1) {\n        value = this._n(value);\n      }\n    }\n    if (!target) {\n      target = this;\n    }\n    target[key] = value;\n  };\n\n  Vue.prototype.__set_sync = function(target, key, value) {\n    if (!target) {\n      target = this;\n    }\n    target[key] = value;\n  };\n\n  Vue.prototype.__get_orig = function(item) {\n    if (isPlainObject(item)) {\n      return item['$orig'] || item\n    }\n    return item\n  };\n\n  Vue.prototype.__get_value = function(dataPath, target) {\n    return getTarget(target || this, dataPath)\n  };\n\n\n  Vue.prototype.__get_class = function(dynamicClass, staticClass) {\n    return renderClass(staticClass, dynamicClass)\n  };\n\n  Vue.prototype.__get_style = function(dynamicStyle, staticStyle) {\n    if (!dynamicStyle && !staticStyle) {\n      return ''\n    }\n    var dynamicStyleObj = normalizeStyleBinding(dynamicStyle);\n    var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj;\n    return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + \":\" + (styleObj[name])); }).join(';')\n  };\n\n  Vue.prototype.__map = function(val, iteratee) {\n    //TODO 暂不考虑 string\n    var ret, i, l, keys, key;\n    if (Array.isArray(val)) {\n      ret = new Array(val.length);\n      for (i = 0, l = val.length; i < l; i++) {\n        ret[i] = iteratee(val[i], i);\n      }\n      return ret\n    } else if (isObject(val)) {\n      keys = Object.keys(val);\n      ret = Object.create(null);\n      for (i = 0, l = keys.length; i < l; i++) {\n        key = keys[i];\n        ret[key] = iteratee(val[key], key, i);\n      }\n      return ret\n    } else if (typeof val === 'number') {\n      ret = new Array(val);\n      for (i = 0, l = val; i < l; i++) {\n        // 第一个参数暂时仍和小程序一致\n        ret[i] = iteratee(i, i);\n      }\n      return ret\n    }\n    return []\n  };\n\n}\n\n/*  */\n\nvar LIFECYCLE_HOOKS$1 = [\n    //App\n    'onLaunch',\n    'onShow',\n    'onHide',\n    'onUniNViewMessage',\n    'onPageNotFound',\n    'onThemeChange',\n    'onError',\n    'onUnhandledRejection',\n    //Page\n    'onInit',\n    'onLoad',\n    // 'onShow',\n    'onReady',\n    // 'onHide',\n    'onUnload',\n    'onPullDownRefresh',\n    'onReachBottom',\n    'onTabItemTap',\n    'onAddToFavorites',\n    'onShareTimeline',\n    'onShareAppMessage',\n    'onResize',\n    'onPageScroll',\n    'onNavigationBarButtonTap',\n    'onBackPress',\n    'onNavigationBarSearchInputChanged',\n    'onNavigationBarSearchInputConfirmed',\n    'onNavigationBarSearchInputClicked',\n    //Component\n    // 'onReady', // 兼容旧版本,应该移除该事件\n    'onPageShow',\n    'onPageHide',\n    'onPageResize'\n];\nfunction lifecycleMixin$1(Vue) {\n\n    //fixed vue-class-component\n    var oldExtend = Vue.extend;\n    Vue.extend = function(extendOptions) {\n        extendOptions = extendOptions || {};\n\n        var methods = extendOptions.methods;\n        if (methods) {\n            Object.keys(methods).forEach(function (methodName) {\n                if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) {\n                    extendOptions[methodName] = methods[methodName];\n                    delete methods[methodName];\n                }\n            });\n        }\n\n        return oldExtend.call(this, extendOptions)\n    };\n\n    var strategies = Vue.config.optionMergeStrategies;\n    var mergeHook = strategies.created;\n    LIFECYCLE_HOOKS$1.forEach(function (hook) {\n        strategies[hook] = mergeHook;\n    });\n\n    Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1;\n}\n\n/*  */\n\n// install platform patch function\nVue.prototype.__patch__ = patch;\n\n// public mount method\nVue.prototype.$mount = function(\n    el ,\n    hydrating \n) {\n    return mountComponent$1(this, el, hydrating)\n};\n\nlifecycleMixin$1(Vue);\ninternalMixin(Vue);\n\n/*  */\n\nexport default Vue;\n","const isArray = Array.isArray;\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst defaultDelimiters = ['{', '}'];\r\nclass BaseFormatter {\r\n    constructor() {\r\n        this._caches = Object.create(null);\r\n    }\r\n    interpolate(message, values, delimiters = defaultDelimiters) {\r\n        if (!values) {\r\n            return [message];\r\n        }\r\n        let tokens = this._caches[message];\r\n        if (!tokens) {\r\n            tokens = parse(message, delimiters);\r\n            this._caches[message] = tokens;\r\n        }\r\n        return compile(tokens, values);\r\n    }\r\n}\r\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\r\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\r\nfunction parse(format, [startDelimiter, endDelimiter]) {\r\n    const tokens = [];\r\n    let position = 0;\r\n    let text = '';\r\n    while (position < format.length) {\r\n        let char = format[position++];\r\n        if (char === startDelimiter) {\r\n            if (text) {\r\n                tokens.push({ type: 'text', value: text });\r\n            }\r\n            text = '';\r\n            let sub = '';\r\n            char = format[position++];\r\n            while (char !== undefined && char !== endDelimiter) {\r\n                sub += char;\r\n                char = format[position++];\r\n            }\r\n            const isClosed = char === endDelimiter;\r\n            const type = RE_TOKEN_LIST_VALUE.test(sub)\r\n                ? 'list'\r\n                : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\r\n                    ? 'named'\r\n                    : 'unknown';\r\n            tokens.push({ value: sub, type });\r\n        }\r\n        //  else if (char === '%') {\r\n        //   // when found rails i18n syntax, skip text capture\r\n        //   if (format[position] !== '{') {\r\n        //     text += char\r\n        //   }\r\n        // }\r\n        else {\r\n            text += char;\r\n        }\r\n    }\r\n    text && tokens.push({ type: 'text', value: text });\r\n    return tokens;\r\n}\r\nfunction compile(tokens, values) {\r\n    const compiled = [];\r\n    let index = 0;\r\n    const mode = isArray(values)\r\n        ? 'list'\r\n        : isObject(values)\r\n            ? 'named'\r\n            : 'unknown';\r\n    if (mode === 'unknown') {\r\n        return compiled;\r\n    }\r\n    while (index < tokens.length) {\r\n        const token = tokens[index];\r\n        switch (token.type) {\r\n            case 'text':\r\n                compiled.push(token.value);\r\n                break;\r\n            case 'list':\r\n                compiled.push(values[parseInt(token.value, 10)]);\r\n                break;\r\n            case 'named':\r\n                if (mode === 'named') {\r\n                    compiled.push(values[token.value]);\r\n                }\r\n                else {\r\n                    if (process.env.NODE_ENV !== 'production') {\r\n                        console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\r\n                    }\r\n                }\r\n                break;\r\n            case 'unknown':\r\n                if (process.env.NODE_ENV !== 'production') {\r\n                    console.warn(`Detect 'unknown' type of token!`);\r\n                }\r\n                break;\r\n        }\r\n        index++;\r\n    }\r\n    return compiled;\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst defaultFormatter = new BaseFormatter();\r\nfunction include(str, parts) {\r\n    return !!parts.find((part) => str.indexOf(part) !== -1);\r\n}\r\nfunction startsWith(str, parts) {\r\n    return parts.find((part) => str.indexOf(part) === 0);\r\n}\r\nfunction normalizeLocale(locale, messages) {\r\n    if (!locale) {\r\n        return;\r\n    }\r\n    locale = locale.trim().replace(/_/g, '-');\r\n    if (messages && messages[locale]) {\r\n        return locale;\r\n    }\r\n    locale = locale.toLowerCase();\r\n    if (locale.indexOf('zh') === 0) {\r\n        if (locale.indexOf('-hans') > -1) {\r\n            return LOCALE_ZH_HANS;\r\n        }\r\n        if (locale.indexOf('-hant') > -1) {\r\n            return LOCALE_ZH_HANT;\r\n        }\r\n        if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n            return LOCALE_ZH_HANT;\r\n        }\r\n        return LOCALE_ZH_HANS;\r\n    }\r\n    const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n    if (lang) {\r\n        return lang;\r\n    }\r\n}\r\nclass I18n {\r\n    constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\r\n        this.locale = LOCALE_EN;\r\n        this.fallbackLocale = LOCALE_EN;\r\n        this.message = {};\r\n        this.messages = {};\r\n        this.watchers = [];\r\n        if (fallbackLocale) {\r\n            this.fallbackLocale = fallbackLocale;\r\n        }\r\n        this.formater = formater || defaultFormatter;\r\n        this.messages = messages || {};\r\n        this.setLocale(locale || LOCALE_EN);\r\n        if (watcher) {\r\n            this.watchLocale(watcher);\r\n        }\r\n    }\r\n    setLocale(locale) {\r\n        const oldLocale = this.locale;\r\n        this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\r\n        if (!this.messages[this.locale]) {\r\n            // 可能初始化时不存在\r\n            this.messages[this.locale] = {};\r\n        }\r\n        this.message = this.messages[this.locale];\r\n        // 仅发生变化时,通知\r\n        if (oldLocale !== this.locale) {\r\n            this.watchers.forEach((watcher) => {\r\n                watcher(this.locale, oldLocale);\r\n            });\r\n        }\r\n    }\r\n    getLocale() {\r\n        return this.locale;\r\n    }\r\n    watchLocale(fn) {\r\n        const index = this.watchers.push(fn) - 1;\r\n        return () => {\r\n            this.watchers.splice(index, 1);\r\n        };\r\n    }\r\n    add(locale, message, override = true) {\r\n        const curMessages = this.messages[locale];\r\n        if (curMessages) {\r\n            if (override) {\r\n                Object.assign(curMessages, message);\r\n            }\r\n            else {\r\n                Object.keys(message).forEach((key) => {\r\n                    if (!hasOwn(curMessages, key)) {\r\n                        curMessages[key] = message[key];\r\n                    }\r\n                });\r\n            }\r\n        }\r\n        else {\r\n            this.messages[locale] = message;\r\n        }\r\n    }\r\n    f(message, values, delimiters) {\r\n        return this.formater.interpolate(message, values, delimiters).join('');\r\n    }\r\n    t(key, locale, values) {\r\n        let message = this.message;\r\n        if (typeof locale === 'string') {\r\n            locale = normalizeLocale(locale, this.messages);\r\n            locale && (message = this.messages[locale]);\r\n        }\r\n        else {\r\n            values = locale;\r\n        }\r\n        if (!hasOwn(message, key)) {\r\n            console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\r\n            return key;\r\n        }\r\n        return this.formater.interpolate(message[key], values).join('');\r\n    }\r\n}\r\n\r\nfunction watchAppLocale(appVm, i18n) {\r\n    // 需要保证 watch 的触发在组件渲染之前\r\n    if (appVm.$watchLocale) {\r\n        // vue2\r\n        appVm.$watchLocale((newLocale) => {\r\n            i18n.setLocale(newLocale);\r\n        });\r\n    }\r\n    else {\r\n        appVm.$watch(() => appVm.$locale, (newLocale) => {\r\n            i18n.setLocale(newLocale);\r\n        });\r\n    }\r\n}\r\nfunction getDefaultLocale() {\r\n    if (typeof uni !== 'undefined' && uni.getLocale) {\r\n        return uni.getLocale();\r\n    }\r\n    // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\r\n    if (typeof global !== 'undefined' && global.getLocale) {\r\n        return global.getLocale();\r\n    }\r\n    return LOCALE_EN;\r\n}\r\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\r\n    // 兼容旧版本入参\r\n    if (typeof locale !== 'string') {\r\n        [locale, messages] = [\r\n            messages,\r\n            locale,\r\n        ];\r\n    }\r\n    if (typeof locale !== 'string') {\r\n        // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\r\n        locale = getDefaultLocale();\r\n    }\r\n    if (typeof fallbackLocale !== 'string') {\r\n        fallbackLocale =\r\n            (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\r\n                LOCALE_EN;\r\n    }\r\n    const i18n = new I18n({\r\n        locale,\r\n        fallbackLocale,\r\n        messages,\r\n        watcher,\r\n    });\r\n    let t = (key, values) => {\r\n        if (typeof getApp !== 'function') {\r\n            // app view\r\n            /* eslint-disable no-func-assign */\r\n            t = function (key, values) {\r\n                return i18n.t(key, values);\r\n            };\r\n        }\r\n        else {\r\n            let isWatchedAppLocale = false;\r\n            t = function (key, values) {\r\n                const appVm = getApp().$vm;\r\n                // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\r\n                // options: {\r\n                // \ttype: Array,\r\n                // \tdefault () {\r\n                // \t\treturn [{\r\n                // \t\t\ticon: 'shop',\r\n                // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\r\n                // \t\t}, {\r\n                // \t\t\ticon: 'cart',\r\n                // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\r\n                // \t\t}]\r\n                // \t}\r\n                // },\r\n                if (appVm) {\r\n                    // 触发响应式\r\n                    appVm.$locale;\r\n                    if (!isWatchedAppLocale) {\r\n                        isWatchedAppLocale = true;\r\n                        watchAppLocale(appVm, i18n);\r\n                    }\r\n                }\r\n                return i18n.t(key, values);\r\n            };\r\n        }\r\n        return t(key, values);\r\n    };\r\n    return {\r\n        i18n,\r\n        f(message, values, delimiters) {\r\n            return i18n.f(message, values, delimiters);\r\n        },\r\n        t(key, values) {\r\n            return t(key, values);\r\n        },\r\n        add(locale, message, override = true) {\r\n            return i18n.add(locale, message, override);\r\n        },\r\n        watch(fn) {\r\n            return i18n.watchLocale(fn);\r\n        },\r\n        getLocale() {\r\n            return i18n.getLocale();\r\n        },\r\n        setLocale(newLocale) {\r\n            return i18n.setLocale(newLocale);\r\n        },\r\n    };\r\n}\r\n\r\nconst isString = (val) => typeof val === 'string';\r\nlet formater;\r\nfunction hasI18nJson(jsonObj, delimiters) {\r\n    if (!formater) {\r\n        formater = new BaseFormatter();\r\n    }\r\n    return walkJsonObj(jsonObj, (jsonObj, key) => {\r\n        const value = jsonObj[key];\r\n        if (isString(value)) {\r\n            if (isI18nStr(value, delimiters)) {\r\n                return true;\r\n            }\r\n        }\r\n        else {\r\n            return hasI18nJson(value, delimiters);\r\n        }\r\n    });\r\n}\r\nfunction parseI18nJson(jsonObj, values, delimiters) {\r\n    if (!formater) {\r\n        formater = new BaseFormatter();\r\n    }\r\n    walkJsonObj(jsonObj, (jsonObj, key) => {\r\n        const value = jsonObj[key];\r\n        if (isString(value)) {\r\n            if (isI18nStr(value, delimiters)) {\r\n                jsonObj[key] = compileStr(value, values, delimiters);\r\n            }\r\n        }\r\n        else {\r\n            parseI18nJson(value, values, delimiters);\r\n        }\r\n    });\r\n    return jsonObj;\r\n}\r\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\r\n    if (!isI18nStr(jsonStr, delimiters)) {\r\n        return jsonStr;\r\n    }\r\n    if (!formater) {\r\n        formater = new BaseFormatter();\r\n    }\r\n    const localeValues = [];\r\n    Object.keys(locales).forEach((name) => {\r\n        if (name !== locale) {\r\n            localeValues.push({\r\n                locale: name,\r\n                values: locales[name],\r\n            });\r\n        }\r\n    });\r\n    localeValues.unshift({ locale, values: locales[locale] });\r\n    try {\r\n        return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\r\n    }\r\n    catch (e) { }\r\n    return jsonStr;\r\n}\r\nfunction isI18nStr(value, delimiters) {\r\n    return value.indexOf(delimiters[0]) > -1;\r\n}\r\nfunction compileStr(value, values, delimiters) {\r\n    return formater.interpolate(value, values, delimiters).join('');\r\n}\r\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\r\n    const value = jsonObj[key];\r\n    if (isString(value)) {\r\n        // 存在国际化\r\n        if (isI18nStr(value, delimiters)) {\r\n            jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\r\n            if (localeValues.length > 1) {\r\n                // 格式化国际化语言\r\n                const valueLocales = (jsonObj[key + 'Locales'] = {});\r\n                localeValues.forEach((localValue) => {\r\n                    valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\r\n                });\r\n            }\r\n        }\r\n    }\r\n    else {\r\n        compileJsonObj(value, localeValues, delimiters);\r\n    }\r\n}\r\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\r\n    walkJsonObj(jsonObj, (jsonObj, key) => {\r\n        compileValue(jsonObj, key, localeValues, delimiters);\r\n    });\r\n    return jsonObj;\r\n}\r\nfunction walkJsonObj(jsonObj, walk) {\r\n    if (isArray(jsonObj)) {\r\n        for (let i = 0; i < jsonObj.length; i++) {\r\n            if (walk(jsonObj, i)) {\r\n                return true;\r\n            }\r\n        }\r\n    }\r\n    else if (isObject(jsonObj)) {\r\n        for (const key in jsonObj) {\r\n            if (walk(jsonObj, key)) {\r\n                return true;\r\n            }\r\n        }\r\n    }\r\n    return false;\r\n}\r\n\r\nfunction resolveLocale(locales) {\r\n    return (locale) => {\r\n        if (!locale) {\r\n            return locale;\r\n        }\r\n        locale = normalizeLocale(locale) || locale;\r\n        return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\r\n    };\r\n}\r\nfunction resolveLocaleChain(locale) {\r\n    const chain = [];\r\n    const tokens = locale.split('-');\r\n    while (tokens.length) {\r\n        chain.push(tokens.join('-'));\r\n        tokens.pop();\r\n    }\r\n    return chain;\r\n}\r\n\r\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\r\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode, /* vue-cli only */\n  components, // fixed by xxxxxx auto components\n  renderjs // fixed by xxxxxx renderjs\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // fixed by xxxxxx auto components\n  if (components) {\n    if (!options.components) {\n      options.components = {}\n    }\n    var hasOwn = Object.prototype.hasOwnProperty\n    for (var name in components) {\n      if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {\n        options.components[name] = components[name]\n      }\n    }\n  }\n  // fixed by xxxxxx renderjs\n  if (renderjs) {\n    (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {\n      this[renderjs.__module] = this\n    });\n    (options.mixins || (options.mixins = [])).push(renderjs)\n  }\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","// 引入全局mixin\r\nimport mixin from './libs/mixin/mixin.js'\r\n// 引入关于是否mixin集成小程序分享的配置\r\n// import wxshare from './libs/mixin/mpShare.js'\r\n// 全局挂载引入http相关请求拦截插件\r\nimport http from './libs/request'\r\n\r\nfunction wranning(str) {\r\n\t// 开发环境进行信息输出,主要是一些报错信息\r\n\t// 这个环境的来由是在程序编写时候,点击hx编辑器运行调试代码的时候,详见:\r\n\t// \thttps://uniapp.dcloud.io/frame?id=%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e5%92%8c%e7%94%9f%e4%ba%a7%e7%8e%af%e5%a2%83\r\n\tif (process.env.NODE_ENV === 'development') {\r\n\t\tconsole.warn(str)\r\n\t}\r\n}\r\n\r\n// 尝试判断在根目录的/store中是否有$u.mixin.js,此文件uView默认为需要挂在到全局的vuex的state变量\r\n// HX2.6.11版本,放到try中,控制台依然会警告,暂时不用此方式,\r\n// let vuexStore = {};\r\n// try {\r\n// \tvuexStore = require(\"@/store/$u.mixin.js\");\r\n// } catch (e) {\r\n// \t//TODO handle the exception\r\n// }\r\n\r\n// post类型对象参数转为get类型url参数\r\nimport queryParams from './libs/function/queryParams.js'\r\n// 路由封装\r\nimport route from './libs/function/route.js'\r\n// 时间格式化\r\nimport timeFormat from './libs/function/timeFormat.js'\r\n// 时间戳格式化,返回多久之前\r\nimport timeFrom from './libs/function/timeFrom.js'\r\n// 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制\r\nimport colorGradient from './libs/function/colorGradient.js'\r\n// 生成全局唯一guid字符串\r\nimport guid from './libs/function/guid.js'\r\n// 主题相关颜色,info|success|warning|primary|default|error,此颜色已在uview.scss中定义,但是为js中也能使用,故也定义一份\r\nimport color from './libs/function/color.js'\r\n// 根据type获取图标名称\r\nimport type2icon from './libs/function/type2icon.js'\r\n// 打乱数组的顺序\r\nimport randomArray from './libs/function/randomArray.js'\r\n// 对象和数组的深度克隆\r\nimport deepClone from './libs/function/deepClone.js'\r\n// 对象深度拷贝\r\nimport deepMerge from './libs/function/deepMerge.js'\r\n// 添加单位\r\nimport addUnit from './libs/function/addUnit.js'\r\n\r\n// 规则检验\r\nimport test from './libs/function/test.js'\r\n// 随机数\r\nimport random from './libs/function/random.js'\r\n// 去除空格\r\nimport trim from './libs/function/trim.js'\r\n// toast提示,对uni.showToast的封装\r\nimport toast from './libs/function/toast.js'\r\n// 获取父组件参数\r\nimport getParent from './libs/function/getParent.js'\r\n// 获取整个父组件\r\nimport $parent from './libs/function/$parent.js'\r\n// 获取sys()和os()工具方法\r\n// 获取设备信息,挂载到$u的sys()(system的缩写)属性中,\r\n// 同时把安卓和ios平台的名称\"ios\"和\"android\"挂到$u.os()中,方便取用\r\nimport {sys, os} from './libs/function/sys.js'\r\n// 防抖方法\r\nimport debounce from './libs/function/debounce.js'\r\n// 节流方法\r\nimport throttle from './libs/function/throttle.js'\r\n\r\n\r\n// 配置信息\r\nimport config from './libs/config/config.js'\r\n// 各个需要fixed的地方的z-index配置文件\r\nimport zIndex from './libs/config/zIndex.js'\r\n\r\nconst $u = {\r\n\tqueryParams: queryParams,\r\n\troute: route,\r\n\ttimeFormat: timeFormat,\r\n\tdate: timeFormat, // 另名date\r\n\ttimeFrom,\r\n\tcolorGradient: colorGradient.colorGradient,\r\n\tcolorToRgba: colorGradient.colorToRgba,\r\n\tguid,\r\n\tcolor,\r\n\tsys,\r\n\tos,\r\n\ttype2icon,\r\n\trandomArray,\r\n\twranning,\r\n\tget: http.get,\r\n\tpost: http.post,\r\n\tput: http.put,\r\n\t'delete': http.delete,\r\n\thexToRgb: colorGradient.hexToRgb,\r\n\trgbToHex: colorGradient.rgbToHex,\r\n\ttest,\r\n\trandom,\r\n\tdeepClone,\r\n\tdeepMerge,\r\n\tgetParent,\r\n\t$parent,\r\n\taddUnit,\r\n\ttrim,\r\n\ttype: ['primary', 'success', 'error', 'warning', 'info'],\r\n\thttp,\r\n\ttoast,\r\n\tconfig, // uView配置信息相关,比如版本号\r\n\tzIndex,\r\n\tdebounce,\r\n\tthrottle,\r\n}\r\n\r\n// $u挂载到uni对象上\r\nuni.$u = $u\r\n\r\nconst install = Vue => {\r\n\tVue.mixin(mixin) \r\n\tif (Vue.prototype.openShare) {\r\n\t\tVue.mixin(mpShare);\r\n\t}\r\n\t// Vue.mixin(vuexStore);\r\n\t// 时间格式化,同时两个名称,date和timeFormat\r\n\tVue.filter('timeFormat', (timestamp, format) => {\r\n\t\treturn timeFormat(timestamp, format)\r\n\t})\r\n\tVue.filter('date', (timestamp, format) => {\r\n\t\treturn timeFormat(timestamp, format)\r\n\t})\r\n\t// 将多久以前的方法,注入到全局过滤器\r\n\tVue.filter('timeFrom', (timestamp, format) => {\r\n\t\treturn timeFrom(timestamp, format)\r\n\t})\r\n\tVue.prototype.$u = $u\r\n}\r\n\r\nexport default {\r\n\tinstall\r\n}","module.exports = {\r\n\tdata() {\r\n\t\treturn {}\r\n\t},\r\n\tonLoad() {\r\n\t\t// getRect挂载到$u上,因为这方法需要使用in(this),所以无法把它独立成一个单独的文件导出\r\n\t\tthis.$u.getRect = this.$uGetRect\r\n\t},\r\n\tmethods: {\r\n\t\t// 查询节点信息\r\n\t\t// 目前此方法在支付宝小程序中无法获取组件跟接点的尺寸,为支付宝的bug(2020-07-21)\r\n\t\t// 解决办法为在组件根部再套一个没有任何作用的view元素\r\n\t\t$uGetRect(selector, all) {\r\n\t\t\treturn new Promise(resolve => {\r\n\t\t\t\tuni.createSelectorQuery().\r\n\t\t\t\tin(this)[all ? 'selectAll' : 'select'](selector)\r\n\t\t\t\t\t.boundingClientRect(rect => {\r\n\t\t\t\t\t\tif (all && Array.isArray(rect) && rect.length) {\r\n\t\t\t\t\t\t\tresolve(rect)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!all && rect) {\r\n\t\t\t\t\t\t\tresolve(rect)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.exec()\r\n\t\t\t})\r\n\t\t},\r\n\t\tgetParentData(parentName = '') {\r\n\t\t\t// 避免在created中去定义parent变量\r\n\t\t\tif(!this.parent) this.parent = false;\r\n\t\t\t// 这里的本质原理是,通过获取父组件实例(也即u-radio-group的this)\r\n\t\t\t// 将父组件this中对应的参数,赋值给本组件(u-radio的this)的parentData对象中对应的属性\r\n\t\t\t// 之所以需要这么做,是因为所有端中,头条小程序不支持通过this.parent.xxx去监听父组件参数的变化\r\n\t\t\tthis.parent = this.$u.$parent.call(this, parentName);\r\n\t\t\tif(this.parent) {\r\n\t\t\t\t// 历遍parentData中的属性,将parent中的同名属性赋值给parentData\r\n\t\t\t\tObject.keys(this.parentData).map(key => {\r\n\t\t\t\t\tthis.parentData[key] = this.parent[key];\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 阻止事件冒泡\r\n\t\tpreventEvent(e) {\r\n\t\t\te && e.stopPropagation && e.stopPropagation()\r\n\t\t}\r\n\t},\r\n\tonReachBottom() {\r\n\t\tuni.$emit('uOnReachBottom')\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\t// 判断当前页面是否存在parent和chldren,一般在checkbox和checkbox-group父子联动的场景会有此情况\r\n\t\t// 组件销毁时,移除子组件在父组件children数组中的实例,释放资源,避免数据混乱\r\n\t\tif(this.parent && uni.$u.test.array(this.parent.children)) {\r\n\t\t\t// 组件销毁时,移除父组件中的children数组中对应的实例\r\n\t\t\tconst childrenList = this.parent.children\r\n\t\t\tchildrenList.map((child, index) => {\r\n\t\t\t\t// 如果相等,则移除\r\n\t\t\t\tif(child === this) {\r\n\t\t\t\t\tchildrenList.splice(index, 1)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n","import deepMerge from \"../function/deepMerge\";\r\nimport validate from \"../function/test\";\r\nclass Request {\r\n\t// 设置全局默认配置\r\n\tsetConfig(customConfig) {\r\n\t\t// 深度合并对象,否则会造成对象深层属性丢失\r\n\t\tthis.config = deepMerge(this.config, customConfig);\r\n\t}\r\n\r\n\t// 主要请求部分\r\n\trequest(options = {}) {\r\n\t\t// 检查请求拦截\r\n\t\tif (this.interceptor.request && typeof this.interceptor.request === 'function') {\r\n\t\t\tlet tmpConfig = {};\r\n\t\t\tlet interceptorRequest = this.interceptor.request(options);\r\n\t\t\tif (interceptorRequest === false) {\r\n\t\t\t\t// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调\r\n\t\t\t\treturn new Promise(()=>{});\r\n\t\t\t}\r\n\t\t\tthis.options = interceptorRequest;\r\n\t\t}\r\n\t\toptions.dataType = options.dataType || this.config.dataType;\r\n\t\toptions.responseType = options.responseType || this.config.responseType;\r\n\t\toptions.url = options.url || '';\r\n\t\toptions.params = options.params || {};\r\n\t\toptions.header = Object.assign({}, this.config.header, options.header);\r\n\t\toptions.method = options.method || this.config.method;\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\toptions.complete = (response) => {\r\n\t\t\t\t// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)\r\n\t\t\t\tuni.hideLoading();\r\n\t\t\t\t// 清除定时器,如果请求回来了,就无需loading\r\n\t\t\t\tclearTimeout(this.config.timer);\r\n\t\t\t\tthis.config.timer = null;\r\n\t\t\t\t// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data\r\n\t\t\t\tif(this.config.originalData) {\r\n\t\t\t\t\t// 判断是否存在拦截器\r\n\t\t\t\t\tif (this.interceptor.response && typeof this.interceptor.response === 'function') {\r\n\t\t\t\t\t\tlet resInterceptors = this.interceptor.response(response);\r\n\t\t\t\t\t\t// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调\r\n\t\t\t\t\t\tif (resInterceptors !== false) {\r\n\t\t\t\t\t\t\tresolve(resInterceptors);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调\r\n\t\t\t\t\t\t\treject(response);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据\r\n\t\t\t\t\t\tresolve(response);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (response.statusCode == 200) {\r\n\t\t\t\t\t\tif (this.interceptor.response && typeof this.interceptor.response === 'function') {\r\n\t\t\t\t\t\t\tlet resInterceptors = this.interceptor.response(response.data);\r\n\t\t\t\t\t\t\tif (resInterceptors !== false) {\r\n\t\t\t\t\t\t\t\tresolve(resInterceptors);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treject(response.data);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调\r\n\t\t\t\t\t\t\tresolve(response.data);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示\r\n\t\t\t\t\t\t// if(response.errMsg) {\r\n\t\t\t\t\t\t// \tuni.showModal({\r\n\t\t\t\t\t\t// \t\ttitle: response.errMsg\r\n\t\t\t\t\t\t// \t});\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t\treject(response)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法\r\n\t\t\toptions.url = validate.url(options.url) ? options.url : (this.config.baseUrl + (options.url.indexOf('/') == 0 ?\r\n\t\t\t\toptions.url : '/' + options.url));\r\n\t\t\t\r\n\t\t\t// 是否显示loading\r\n\t\t\t// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id\r\n\t\t\t// 而没有清除前者的定时器,导致前者超时,一直显示loading\r\n\t\t\tif(this.config.showLoading && !this.config.timer) {\r\n\t\t\t\tthis.config.timer = setTimeout(() => {\r\n\t\t\t\t\tuni.showLoading({\r\n\t\t\t\t\t\ttitle: this.config.loadingText,\r\n\t\t\t\t\t\tmask: this.config.loadingMask\r\n\t\t\t\t\t})\r\n\t\t\t\t\tthis.config.timer = null;\r\n\t\t\t\t}, this.config.loadingTime);\r\n\t\t\t}\r\n\t\t\tuni.request(options);\r\n\t\t})\r\n\t\t// .catch(res => {\r\n\t\t// \t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()\r\n\t\t// \t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch\r\n\t\t// \treturn new Promise(()=>{});\r\n\t\t// })\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tthis.config = {\r\n\t\t\tbaseUrl: '', // 请求的根域名\r\n\t\t\t// 默认的请求头\r\n\t\t\theader: {},\r\n\t\t\tmethod: 'POST',\r\n\t\t\t// 设置为json,返回后uni.request会对数据进行一次JSON.parse\r\n\t\t\tdataType: 'json',\r\n\t\t\t// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可\r\n\t\t\tresponseType: 'text',\r\n\t\t\tshowLoading: true, // 是否显示请求中的loading\r\n\t\t\tloadingText: '请求中...',\r\n\t\t\tloadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms\r\n\t\t\ttimer: null, // 定时器\r\n\t\t\toriginalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明\r\n\t\t\tloadingMask: true, // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透\r\n\t\t}\r\n\t\r\n\t\t// 拦截器\r\n\t\tthis.interceptor = {\r\n\t\t\t// 请求前的拦截\r\n\t\t\trequest: null,\r\n\t\t\t// 请求后的拦截\r\n\t\t\tresponse: null\r\n\t\t}\r\n\r\n\t\t// get请求\r\n\t\tthis.get = (url, data = {}, header = {}) => {\r\n\t\t\treturn this.request({\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl,\r\n\t\t\t\theader,\r\n\t\t\t\tdata\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// post请求\r\n\t\tthis.post = (url, data = {}, header = {}) => {\r\n\t\t\treturn this.request({\r\n\t\t\t\turl,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theader,\r\n\t\t\t\tdata\r\n\t\t\t})\r\n\t\t}\r\n\t\t\r\n\t\t// put请求,不支持支付宝小程序(HX2.6.15)\r\n\t\tthis.put = (url, data = {}, header = {}) => {\r\n\t\t\treturn this.request({\r\n\t\t\t\turl,\r\n\t\t\t\tmethod: 'PUT',\r\n\t\t\t\theader,\r\n\t\t\t\tdata\r\n\t\t\t})\r\n\t\t}\r\n\t\t\r\n\t\t// delete请求,不支持支付宝和头条小程序(HX2.6.15)\r\n\t\tthis.delete = (url, data = {}, header = {}) => {\r\n\t\t\treturn this.request({\r\n\t\t\t\turl,\r\n\t\t\t\tmethod: 'DELETE',\r\n\t\t\t\theader,\r\n\t\t\t\tdata\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\nexport default new Request\r\n","import deepClone from \"./deepClone\";\r\n\r\n// JS对象深度合并\r\nfunction deepMerge(target = {}, source = {}) {\r\n\ttarget = deepClone(target);\r\n\tif (typeof target !== 'object' || typeof source !== 'object') return false;\r\n\tfor (var prop in source) {\r\n\t\tif (!source.hasOwnProperty(prop)) continue;\r\n\t\tif (prop in target) {\r\n\t\t\tif (typeof target[prop] !== 'object') {\r\n\t\t\t\ttarget[prop] = source[prop];\r\n\t\t\t} else {\r\n\t\t\t\tif (typeof source[prop] !== 'object') {\r\n\t\t\t\t\ttarget[prop] = source[prop];\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (target[prop].concat && source[prop].concat) {\r\n\t\t\t\t\t\ttarget[prop] = target[prop].concat(source[prop]);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttarget[prop] = deepMerge(target[prop], source[prop]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\ttarget[prop] = source[prop];\r\n\t\t}\r\n\t}\r\n\treturn target;\r\n}\r\n\r\nexport default deepMerge;","// 判断arr是否为一个数组,返回一个bool值\r\nfunction isArray (arr) {\r\n    return Object.prototype.toString.call(arr) === '[object Array]';\r\n}\r\n\r\n// 深度克隆\r\nfunction deepClone (obj) {\r\n\t// 对常见的“非”值,直接返回原来值\r\n\tif([null, undefined, NaN, false].includes(obj)) return obj;\r\n    if(typeof obj !== \"object\" && typeof obj !== 'function') {\r\n\t\t//原始类型直接返回\r\n        return obj;\r\n    }\r\n    var o = isArray(obj) ? [] : {};\r\n    for(let i in obj) {\r\n        if(obj.hasOwnProperty(i)){\r\n            o[i] = typeof obj[i] === \"object\" ? deepClone(obj[i]) : obj[i];\r\n        }\r\n    }\r\n    return o;\r\n}\r\n\r\nexport default deepClone;\r\n","/**\r\n * 验证电子邮箱格式\r\n */\r\nfunction email(value) {\r\n\treturn /^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$/.test(value);\r\n}\r\n\r\n/**\r\n * 验证手机格式\r\n */\r\nfunction mobile(value) {\r\n\treturn /^1[3-9]\\d{9}$/.test(value)\r\n}\r\n\r\n/**\r\n * 验证URL格式\r\n */\r\nfunction url(value) {\r\n\treturn /http(s)?:\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w-.\\/?%&=]*)?/.test(value)\r\n}\r\n\r\n/**\r\n * 验证日期格式\r\n */\r\nfunction date(value) {\r\n\treturn !/Invalid|NaN/.test(new Date(value).toString())\r\n}\r\n\r\n/**\r\n * 验证ISO类型的日期格式\r\n */\r\nfunction dateISO(value) {\r\n\treturn /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test(value)\r\n}\r\n\r\n/**\r\n * 验证十进制数字\r\n */\r\nfunction number(value) {\r\n\treturn /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test(value)\r\n}\r\n\r\n/**\r\n * 验证整数\r\n */\r\nfunction digits(value) {\r\n\treturn /^\\d+$/.test(value)\r\n}\r\n\r\n/**\r\n * 验证身份证号码\r\n */\r\nfunction idCard(value) {\r\n\treturn /^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$/.test(\r\n\t\tvalue)\r\n}\r\n\r\n/**\r\n * 是否车牌号\r\n */\r\nfunction carNo(value) {\r\n\t// 新能源车牌\r\n\tconst xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;\r\n\t// 旧车牌\r\n\tconst creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;\r\n\tif (value.length === 7) {\r\n\t\treturn creg.test(value);\r\n\t} else if (value.length === 8) {\r\n\t\treturn xreg.test(value);\r\n\t} else {\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * 金额,只允许2位小数\r\n */\r\nfunction amount(value) {\r\n\t//金额,只允许保留两位小数\r\n\treturn /^[1-9]\\d*(,\\d{3})*(\\.\\d{1,2})?$|^0\\.\\d{1,2}$/.test(value);\r\n}\r\n\r\n/**\r\n * 中文\r\n */\r\nfunction chinese(value) {\r\n\tlet reg = /^[\\u4e00-\\u9fa5]+$/gi;\r\n\treturn reg.test(value);\r\n}\r\n\r\n/**\r\n * 只能输入字母\r\n */\r\nfunction letter(value) {\r\n\treturn /^[a-zA-Z]*$/.test(value);\r\n}\r\n\r\n/**\r\n * 只能是字母或者数字\r\n */\r\nfunction enOrNum(value) {\r\n\t//英文或者数字\r\n\tlet reg = /^[0-9a-zA-Z]*$/g;\r\n\treturn reg.test(value);\r\n}\r\n\r\n/**\r\n * 验证是否包含某个值\r\n */\r\nfunction contains(value, param) {\r\n\treturn value.indexOf(param) >= 0\r\n}\r\n\r\n/**\r\n * 验证一个值范围[min, max]\r\n */\r\nfunction range(value, param) {\r\n\treturn value >= param[0] && value <= param[1]\r\n}\r\n\r\n/**\r\n * 验证一个长度范围[min, max]\r\n */\r\nfunction rangeLength(value, param) {\r\n\treturn value.length >= param[0] && value.length <= param[1]\r\n}\r\n\r\n/**\r\n * 是否固定电话\r\n */\r\nfunction landline(value) {\r\n\tlet reg = /^\\d{3,4}-\\d{7,8}(-\\d{3,4})?$/;\r\n\treturn reg.test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为空\r\n */\r\nfunction empty(value) {\r\n\tswitch (typeof value) {\r\n\t\tcase 'undefined':\r\n\t\t\treturn true;\r\n\t\tcase 'string':\r\n\t\t\tif (value.replace(/(^[ \\t\\n\\r]*)|([ \\t\\n\\r]*$)/g, '').length == 0) return true;\r\n\t\t\tbreak;\r\n\t\tcase 'boolean':\r\n\t\t\tif (!value) return true;\r\n\t\t\tbreak;\r\n\t\tcase 'number':\r\n\t\t\tif (0 === value || isNaN(value)) return true;\r\n\t\t\tbreak;\r\n\t\tcase 'object':\r\n\t\t\tif (null === value || value.length === 0) return true;\r\n\t\t\tfor (var i in value) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t}\r\n\treturn false;\r\n}\r\n\r\n/**\r\n * 是否json字符串\r\n */\r\nfunction jsonString(value) {\r\n\tif (typeof value == 'string') {\r\n\t\ttry {\r\n\t\t\tvar obj = JSON.parse(value);\r\n\t\t\tif (typeof obj == 'object' && obj) {\r\n\t\t\t\treturn true;\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\n\r\n/**\r\n * 是否数组\r\n */\r\nfunction array(value) {\r\n\tif (typeof Array.isArray === \"function\") {\r\n\t\treturn Array.isArray(value);\r\n\t} else {\r\n\t\treturn Object.prototype.toString.call(value) === \"[object Array]\";\r\n\t}\r\n}\r\n\r\n/**\r\n * 是否对象\r\n */\r\nfunction object(value) {\r\n\treturn Object.prototype.toString.call(value) === '[object Object]';\r\n}\r\n\r\n/**\r\n * 是否短信验证码\r\n */\r\nfunction code(value, len = 6) {\r\n\treturn new RegExp(`^\\\\d{${len}}$`).test(value);\r\n}\r\n\r\n\r\nexport default {\r\n\temail,\r\n\tmobile,\r\n\turl,\r\n\tdate,\r\n\tdateISO,\r\n\tnumber,\r\n\tdigits,\r\n\tidCard,\r\n\tcarNo,\r\n\tamount,\r\n\tchinese,\r\n\tletter,\r\n\tenOrNum,\r\n\tcontains,\r\n\trange,\r\n\trangeLength,\r\n\tempty,\r\n\tisEmpty: empty,\r\n\tjsonString,\r\n\tlandline,\r\n\tobject,\r\n\tarray,\r\n\tcode\r\n}\r\n","/**\r\n * 对象转url参数\r\n * @param {*} data,对象\r\n * @param {*} isPrefix,是否自动加上\"?\"\r\n */\r\nfunction queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {\r\n\tlet prefix = isPrefix ? '?' : ''\r\n\tlet _result = []\r\n\tif (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets';\r\n\tfor (let key in data) {\r\n\t\tlet value = data[key]\r\n\t\t// 去掉为空的参数\r\n\t\tif (['', undefined, null].indexOf(value) >= 0) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\t// 如果值为数组,另行处理\r\n\t\tif (value.constructor === Array) {\r\n\t\t\t// e.g. {ids: [1, 2, 3]}\r\n\t\t\tswitch (arrayFormat) {\r\n\t\t\t\tcase 'indices':\r\n\t\t\t\t\t// 结果: ids[0]=1&ids[1]=2&ids[2]=3\r\n\t\t\t\t\tfor (let i = 0; i < value.length; i++) {\r\n\t\t\t\t\t\t_result.push(key + '[' + i + ']=' + value[i])\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'brackets':\r\n\t\t\t\t\t// 结果: ids[]=1&ids[]=2&ids[]=3\r\n\t\t\t\t\tvalue.forEach(_value => {\r\n\t\t\t\t\t\t_result.push(key + '[]=' + _value)\r\n\t\t\t\t\t})\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'repeat':\r\n\t\t\t\t\t// 结果: ids=1&ids=2&ids=3\r\n\t\t\t\t\tvalue.forEach(_value => {\r\n\t\t\t\t\t\t_result.push(key + '=' + _value)\r\n\t\t\t\t\t})\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'comma':\r\n\t\t\t\t\t// 结果: ids=1,2,3\r\n\t\t\t\t\tlet commaStr = \"\";\r\n\t\t\t\t\tvalue.forEach(_value => {\r\n\t\t\t\t\t\tcommaStr += (commaStr ? \",\" : \"\") + _value;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t_result.push(key + '=' + commaStr)\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvalue.forEach(_value => {\r\n\t\t\t\t\t\t_result.push(key + '[]=' + _value)\r\n\t\t\t\t\t})\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t_result.push(key + '=' + value)\r\n\t\t}\r\n\t}\r\n\treturn _result.length ? prefix + _result.join('&') : ''\r\n}\r\n\r\nexport default queryParams;\r\n","/**\r\n * 路由跳转方法,该方法相对于直接使用uni.xxx的好处是使用更加简单快捷\r\n * 并且带有路由拦截功能\r\n */\r\n\r\nclass Router {\r\n\tconstructor() {\r\n\t\t// 原始属性定义\r\n\t\tthis.config = {\r\n\t\t\ttype: 'navigateTo',\r\n\t\t\turl: '',\r\n\t\t\tdelta: 1, // navigateBack页面后退时,回退的层数\r\n\t\t\tparams: {}, // 传递的参数\r\n\t\t\tanimationType: 'pop-in', // 窗口动画,只在APP有效\r\n\t\t\tanimationDuration: 300, // 窗口动画持续时间,单位毫秒,只在APP有效\r\n\t\t\tintercept: false, // 是否需要拦截\r\n\t\t}\r\n\t\t// 因为route方法是需要对外赋值给另外的对象使用,同时route内部有使用this,会导致route失去上下文\r\n\t\t// 这里在构造函数中进行this绑定\r\n\t\tthis.route = this.route.bind(this)\r\n\t}\r\n\r\n\t// 判断url前面是否有\"/\",如果没有则加上,否则无法跳转\r\n\taddRootPath(url) {\r\n\t\treturn url[0] === '/' ? url : `/${url}`\r\n\t}\r\n\r\n\t// 整合路由参数\r\n\tmixinParam(url, params) {\r\n\t\turl = url && this.addRootPath(url)\r\n\t\t\r\n\t\t// 使用正则匹配,主要依据是判断是否有\"/\",\"?\",\"=\"等,如“/page/index/index?name=mary\"\r\n\t\t// 如果有url中有get参数,转换后无需带上\"?\"\r\n\t\tlet query = ''\r\n\t\tif (/.*\\/.*\\?.*=.*/.test(url)) {\r\n\t\t\t// object对象转为get类型的参数\r\n\t\t\tquery = uni.$u.queryParams(params, false);\r\n\t\t\t// 因为已有get参数,所以后面拼接的参数需要带上\"&\"隔开\r\n\t\t\treturn url += \"&\" + query\r\n\t\t} else {\r\n\t\t\t// 直接拼接参数,因为此处url中没有后面的query参数,也就没有\"?/&\"之类的符号\r\n\t\t\tquery = uni.$u.queryParams(params);\r\n\t\t\treturn url += query\r\n\t\t}\r\n\t}\r\n\r\n\t// 对外的方法名称\r\n\tasync route(options = {}, params = {}) {\r\n\t\t// 合并用户的配置和内部的默认配置\r\n\t\tlet mergeConfig = {}\r\n\r\n\t\tif (typeof options === 'string') {\r\n\t\t\t// 如果options为字符串,则为route(url, params)的形式\r\n\t\t\tmergeConfig.url = this.mixinParam(options, params)\r\n\t\t\tmergeConfig.type = 'navigateTo'\r\n\t\t} else {\r\n\t\t\tmergeConfig = uni.$u.deepClone(options, this.config)\r\n\t\t\t// 否则正常使用mergeConfig中的url和params进行拼接\r\n\t\t\tmergeConfig.url = this.mixinParam(options.url, options.params)\r\n\t\t}\r\n\t\t\r\n\t\tif(params.intercept) {\r\n\t\t\tthis.config.intercept = params.intercept\r\n\t\t}\r\n\t\t// params参数也带给拦截器\r\n\t\tmergeConfig.params = params\r\n\t\t// 合并内外部参数\r\n\t\tmergeConfig = uni.$u.deepMerge(this.config, mergeConfig)\r\n\t\t// 判断用户是否定义了拦截器\r\n\t\tif (typeof uni.$u.routeIntercept === 'function') {\r\n\t\t\t// 定一个promise,根据用户执行resolve(true)或者resolve(false)来决定是否进行路由跳转\r\n\t\t\tconst isNext = await new Promise((resolve, reject) => {\r\n\t\t\t\tuni.$u.routeIntercept(mergeConfig, resolve)\r\n\t\t\t})\r\n\t\t\t// 如果isNext为true,则执行路由跳转\r\n\t\t\tisNext && this.openPage(mergeConfig)\r\n\t\t} else {\r\n\t\t\tthis.openPage(mergeConfig)\r\n\t\t}\r\n\t}\r\n\r\n\t// 执行路由跳转\r\n\topenPage(config) {\r\n\t\t// 解构参数\r\n\t\tconst {\r\n\t\t\turl,\r\n\t\t\ttype,\r\n\t\t\tdelta,\r\n\t\t\tanimationType,\r\n\t\t\tanimationDuration\r\n\t\t} = config\r\n\t\tif (config.type == 'navigateTo' || config.type == 'to') {\r\n\t\t\tuni.navigateTo({\r\n\t\t\t\turl,\r\n\t\t\t\tanimationType,\r\n\t\t\t\tanimationDuration\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (config.type == 'redirectTo' || config.type == 'redirect') {\r\n\t\t\tuni.redirectTo({\r\n\t\t\t\turl\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (config.type == 'switchTab' || config.type == 'tab') {\r\n\t\t\tuni.switchTab({\r\n\t\t\t\turl\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (config.type == 'reLaunch' || config.type == 'launch') {\r\n\t\t\tuni.reLaunch({\r\n\t\t\t\turl\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (config.type == 'navigateBack' || config.type == 'back') {\r\n\t\t\tuni.navigateBack({\r\n\t\t\t\tdelta\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default (new Router()).route","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n  return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n  Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n  // Restore the original runtime.\n  g.regeneratorRuntime = oldRuntime;\n} else {\n  // Remove the global property added by runtime.js.\n  try {\n    delete g.regeneratorRuntime;\n  } catch(e) {\n    g.regeneratorRuntime = undefined;\n  }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  var inModule = typeof module === \"object\";\n  var runtime = global.regeneratorRuntime;\n  if (runtime) {\n    if (inModule) {\n      // If regeneratorRuntime is defined globally and we're in a module,\n      // make the exports object identical to regeneratorRuntime.\n      module.exports = runtime;\n    }\n    // Don't bother evaluating the rest of this file if the runtime was\n    // already defined globally.\n    return;\n  }\n\n  // Define the runtime globally (as expected by generated code) as either\n  // module.exports (if we're in a module) or a new, empty object.\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  runtime.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  runtime.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  runtime.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  runtime.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  runtime.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return runtime.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  runtime.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n})(\n  // In sloppy mode, unbound `this` refers to the global object, fallback to\n  // Function constructor if we're in global strict mode. That is sadly a form\n  // of indirect eval which violates Content Security Policy.\n  (function() {\n    return this || (typeof self === \"object\" && self);\n  })() || Function(\"return this\")()\n);\n","// padStart 的 polyfill,因为某些机型或情况,还无法支持es7的padStart,比如电脑版的微信小程序\r\n// 所以这里做一个兼容polyfill的兼容处理\r\nif (!String.prototype.padStart) {\r\n\t// 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解\r\n\tString.prototype.padStart = function(maxLength, fillString = ' ') {\r\n\t\tif (Object.prototype.toString.call(fillString) !== \"[object String]\") throw new TypeError(\r\n\t\t\t'fillString must be String')\r\n\t\tlet str = this\r\n\t\t// 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉\r\n\t\tif (str.length >= maxLength) return String(str)\r\n\r\n\t\tlet fillLength = maxLength - str.length,\r\n\t\t\ttimes = Math.ceil(fillLength / fillString.length)\r\n\t\twhile (times >>= 1) {\r\n\t\t\tfillString += fillString\r\n\t\t\tif (times === 1) {\r\n\t\t\t\tfillString += fillString\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn fillString.slice(0, fillLength) + str;\r\n\t}\r\n}\r\n\r\n// 其他更多是格式化有如下:\r\n// yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合\r\nfunction timeFormat(dateTime = null, fmt = 'yyyy-mm-dd') {\r\n\t// 如果为null,则格式化当前时间\r\n\tif (!dateTime) dateTime = Number(new Date());\r\n\t// 如果dateTime长度为10或者13,则为秒和毫秒的时间戳,如果超过13位,则为其他的时间格式\r\n\tif (dateTime.toString().length == 10) dateTime *= 1000;\r\n\tlet date = new Date(dateTime);\r\n\tlet ret;\r\n\tlet opt = {\r\n\t\t\"y+\": date.getFullYear().toString(), // 年\r\n\t\t\"m+\": (date.getMonth() + 1).toString(), // 月\r\n\t\t\"d+\": date.getDate().toString(), // 日\r\n\t\t\"h+\": date.getHours().toString(), // 时\r\n\t\t\"M+\": date.getMinutes().toString(), // 分\r\n\t\t\"s+\": date.getSeconds().toString() // 秒\r\n\t\t// 有其他格式化字符需求可以继续添加,必须转化成字符串\r\n\t};\r\n\tfor (let k in opt) {\r\n\t\tret = new RegExp(\"(\" + k + \")\").exec(fmt);\r\n\t\tif (ret) {\r\n\t\t\tfmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, \"0\")))\r\n\t\t};\r\n\t};\r\n\treturn fmt;\r\n}\r\n\r\nexport default timeFormat\r\n","import timeFormat from '../../libs/function/timeFormat.js';\r\n\r\n/**\r\n * 时间戳转为多久之前\r\n * @param String timestamp 时间戳\r\n * @param String | Boolean format 如果为时间格式字符串,超出一定时间范围,返回固定的时间格式;\r\n * 如果为布尔值false,无论什么时间,都返回多久以前的格式\r\n */\r\nfunction timeFrom(dateTime = null, format = 'yyyy-mm-dd') {\r\n\t// 如果为null,则格式化当前时间\r\n\tif (!dateTime) dateTime = Number(new Date());\r\n\t// 如果dateTime长度为10或者13,则为秒和毫秒的时间戳,如果超过13位,则为其他的时间格式\r\n\tif (dateTime.toString().length == 10) dateTime *= 1000;\r\n\tlet timestamp = + new Date(Number(dateTime));\r\n\r\n\tlet timer = (Number(new Date()) - timestamp) / 1000;\r\n\t// 如果小于5分钟,则返回\"刚刚\",其他以此类推\r\n\tlet tips = '';\r\n\tswitch (true) {\r\n\t\tcase timer < 300:\r\n\t\t\ttips = '刚刚';\r\n\t\t\tbreak;\r\n\t\tcase timer >= 300 && timer < 3600:\r\n\t\t\ttips = parseInt(timer / 60) + '分钟前';\r\n\t\t\tbreak;\r\n\t\tcase timer >= 3600 && timer < 86400:\r\n\t\t\ttips = parseInt(timer / 3600) + '小时前';\r\n\t\t\tbreak;\r\n\t\tcase timer >= 86400 && timer < 2592000:\r\n\t\t\ttips = parseInt(timer / 86400) + '天前';\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\t// 如果format为false,则无论什么时间戳,都显示xx之前\r\n\t\t\tif(format === false) {\r\n\t\t\t\tif(timer >= 2592000 && timer < 365 * 86400) {\r\n\t\t\t\t\ttips = parseInt(timer / (86400 * 30)) + '个月前';\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttips = parseInt(timer / (86400 * 365)) + '年前';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttips = timeFormat(timestamp, format);\r\n\t\t\t}\r\n\t}\r\n\treturn tips;\r\n}\r\n\r\nexport default timeFrom;\r\n","/**\r\n * 求两个颜色之间的渐变值\r\n * @param {string} startColor 开始的颜色\r\n * @param {string} endColor 结束的颜色\r\n * @param {number} step 颜色等分的份额\r\n * */\r\nfunction colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255, 255, 255)', step = 10) {\r\n\tlet startRGB = hexToRgb(startColor, false); //转换为rgb数组模式\r\n\tlet startR = startRGB[0];\r\n\tlet startG = startRGB[1];\r\n\tlet startB = startRGB[2];\r\n\r\n\tlet endRGB = hexToRgb(endColor, false);\r\n\tlet endR = endRGB[0];\r\n\tlet endG = endRGB[1];\r\n\tlet endB = endRGB[2];\r\n\r\n\tlet sR = (endR - startR) / step; //总差值\r\n\tlet sG = (endG - startG) / step;\r\n\tlet sB = (endB - startB) / step;\r\n\tlet colorArr = [];\r\n\tfor (let i = 0; i < step; i++) {\r\n\t\t//计算每一步的hex值 \r\n\t\tlet hex = rgbToHex('rgb(' + Math.round((sR * i + startR)) + ',' + Math.round((sG * i + startG)) + ',' + Math.round((sB *\r\n\t\t\ti + startB)) + ')');\r\n\t\tcolorArr.push(hex);\r\n\t}\r\n\treturn colorArr;\r\n}\r\n\r\n// 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)\r\nfunction hexToRgb(sColor, str = true) {\r\n\tlet reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;\r\n\tsColor = sColor.toLowerCase();\r\n\tif (sColor && reg.test(sColor)) {\r\n\t\tif (sColor.length === 4) {\r\n\t\t\tlet sColorNew = \"#\";\r\n\t\t\tfor (let i = 1; i < 4; i += 1) {\r\n\t\t\t\tsColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));\r\n\t\t\t}\r\n\t\t\tsColor = sColorNew;\r\n\t\t}\r\n\t\t//处理六位的颜色值\r\n\t\tlet sColorChange = [];\r\n\t\tfor (let i = 1; i < 7; i += 2) {\r\n\t\t\tsColorChange.push(parseInt(\"0x\" + sColor.slice(i, i + 2)));\r\n\t\t}\r\n\t\tif(!str) {\r\n\t\t\treturn sColorChange;\r\n\t\t} else {\r\n\t\t\treturn `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`;\r\n\t\t}\r\n\t} else if (/^(rgb|RGB)/.test(sColor)) {\r\n\t\tlet arr = sColor.replace(/(?:\\(|\\)|rgb|RGB)*/g, \"\").split(\",\")\r\n\t\treturn arr.map(val => Number(val));\r\n\t} else {\r\n\t\treturn sColor;\r\n\t}\r\n};\r\n\r\n// 将rgb表示方式转换为hex表示方式\r\nfunction rgbToHex(rgb) {\r\n\tlet _this = rgb;\r\n\tlet reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;\r\n\tif (/^(rgb|RGB)/.test(_this)) {\r\n\t\tlet aColor = _this.replace(/(?:\\(|\\)|rgb|RGB)*/g, \"\").split(\",\");\r\n\t\tlet strHex = \"#\";\r\n\t\tfor (let i = 0; i < aColor.length; i++) {\r\n\t\t\tlet hex = Number(aColor[i]).toString(16);\r\n\t\t\thex = String(hex).length == 1 ? 0 + '' + hex : hex; // 保证每个rgb的值为2位\r\n\t\t\tif (hex === \"0\") {\r\n\t\t\t\thex += hex;\r\n\t\t\t}\r\n\t\t\tstrHex += hex;\r\n\t\t}\r\n\t\tif (strHex.length !== 7) {\r\n\t\t\tstrHex = _this;\r\n\t\t}\r\n\t\treturn strHex;\r\n\t} else if (reg.test(_this)) {\r\n\t\tlet aNum = _this.replace(/#/, \"\").split(\"\");\r\n\t\tif (aNum.length === 6) {\r\n\t\t\treturn _this;\r\n\t\t} else if (aNum.length === 3) {\r\n\t\t\tlet numHex = \"#\";\r\n\t\t\tfor (let i = 0; i < aNum.length; i += 1) {\r\n\t\t\t\tnumHex += (aNum[i] + aNum[i]);\r\n\t\t\t}\r\n\t\t\treturn numHex;\r\n\t\t}\r\n\t} else {\r\n\t\treturn _this;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n* JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串\r\n* sHex为传入的十六进制的色值\r\n* alpha为rgba的透明度\r\n*/\r\nfunction colorToRgba(color, alpha = 0.3) {\r\n\tcolor = rgbToHex(color)\r\n\t// 十六进制颜色值的正则表达式\r\n\tvar reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/\r\n\t/* 16进制颜色转为RGB格式 */\r\n\tlet sColor = color.toLowerCase()\r\n\tif (sColor && reg.test(sColor)) {\r\n\t\tif (sColor.length === 4) {\r\n\t\t\tvar sColorNew = '#'\r\n\t\t\tfor (let i = 1; i < 4; i += 1) {\r\n\t\t\t\tsColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))\r\n\t\t\t}\r\n\t\t\tsColor = sColorNew\r\n\t\t}\r\n\t\t// 处理六位的颜色值\r\n\t\tvar sColorChange = []\r\n\t\tfor (let i = 1; i < 7; i += 2) {\r\n\t\t\tsColorChange.push(parseInt('0x' + sColor.slice(i, i + 2)))\r\n\t\t}\r\n\t\t// return sColorChange.join(',')\r\n\t\treturn 'rgba(' + sColorChange.join(',') + ',' + alpha + ')'\r\n\t} \r\n\telse {\r\n\t\treturn sColor\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tcolorGradient,\r\n\thexToRgb,\r\n\trgbToHex,\r\n\tcolorToRgba\r\n}","/**\r\n * 本算法来源于简书开源代码,详见:https://www.jianshu.com/p/fdbf293d0a85\r\n * 全局唯一标识符(uuid,Globally Unique Identifier),也称作 uuid(Universally Unique IDentifier) \r\n * 一般用于多个组件之间,给它一个唯一的标识符,或者v-for循环的时候,如果使用数组的index可能会导致更新列表出现问题\r\n * 最可能的情况是左滑删除item或者对某条信息流\"不喜欢\"并去掉它的时候,会导致组件内的数据可能出现错乱\r\n * v-for的时候,推荐使用后端返回的id而不是循环的index\r\n * @param {Number} len uuid的长度\r\n * @param {Boolean} firstU 将返回的首字母置为\"u\"\r\n * @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制\r\n */\r\nfunction guid(len = 32, firstU = true, radix = null) {\r\n\tlet chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\r\n\tlet uuid = [];\r\n\tradix = radix || chars.length;\r\n\r\n\tif (len) {\r\n\t\t// 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位\r\n\t\tfor (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];\r\n\t} else {\r\n\t\tlet r;\r\n\t\t// rfc4122标准要求返回的uuid中,某些位为固定的字符\r\n\t\tuuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';\r\n\t\tuuid[14] = '4';\r\n\r\n\t\tfor (let i = 0; i < 36; i++) {\r\n\t\t\tif (!uuid[i]) {\r\n\t\t\t\tr = 0 | Math.random() * 16;\r\n\t\t\t\tuuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t// 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class\r\n\tif (firstU) {\r\n\t\tuuid.shift();\r\n\t\treturn 'u' + uuid.join('');\r\n\t} else {\r\n\t\treturn uuid.join('');\r\n\t}\r\n}\r\n\r\nexport default guid;\r\n","// 为了让用户能够自定义主题,会逐步弃用此文件,各颜色通过css提供\r\n// 为了给某些特殊场景使用和向后兼容,无需删除此文件(2020-06-20)\r\nlet color = {\r\n\tprimary: \"#2979ff\",\r\n\tprimaryDark: \"#2b85e4\",\r\n\tprimaryDisabled: \"#a0cfff\",\r\n\tprimaryLight: \"#ecf5ff\",\r\n\tbgColor: \"#f3f4f6\",\r\n\t\r\n\tinfo: \"#909399\",\r\n\tinfoDark: \"#82848a\",\r\n\tinfoDisabled: \"#c8c9cc\",\r\n\tinfoLight: \"#f4f4f5\",\r\n\t\r\n\twarning: \"#ff9900\",\r\n\twarningDark: \"#f29100\",\r\n\twarningDisabled: \"#fcbd71\",\r\n\twarningLight: \"#fdf6ec\",\r\n\t\r\n\terror: \"#fa3534\",\r\n\terrorDark: \"#dd6161\",\r\n\terrorDisabled: \"#fab6b6\",\r\n\terrorLight: \"#fef0f0\",\r\n\t\r\n\tsuccess: \"#19be6b\",\r\n\tsuccessDark: \"#18b566\",\r\n\tsuccessDisabled: \"#71d5a1\",\r\n\tsuccessLight: \"#dbf1e1\",\r\n\t\r\n\tmainColor: \"#303133\",\r\n\tcontentColor: \"#606266\",\r\n\ttipsColor: \"#909399\",\r\n\tlightColor: \"#c0c4cc\",\r\n\tborderColor: \"#e4e7ed\"\r\n}\r\n\r\nexport default color;","/**\r\n * 根据主题type值,获取对应的图标\r\n * @param String type 主题名称,primary|info|error|warning|success\r\n * @param String fill 是否使用fill填充实体的图标  \r\n */\r\nfunction type2icon(type = 'success', fill = false) {\r\n\t// 如果非预置值,默认为success\r\n\tif (['primary', 'info', 'error', 'warning', 'success'].indexOf(type) == -1) type = 'success';\r\n\tlet iconName = '';\r\n\t// 目前(2019-12-12),info和primary使用同一个图标\r\n\tswitch (type) {\r\n\t\tcase 'primary':\r\n\t\t\ticonName = 'info-circle';\r\n\t\t\tbreak;\r\n\t\tcase 'info':\r\n\t\t\ticonName = 'info-circle';\r\n\t\t\tbreak;\r\n\t\tcase 'error':\r\n\t\t\ticonName = 'close-circle';\r\n\t\t\tbreak;\r\n\t\tcase 'warning':\r\n\t\t\ticonName = 'error-circle';\r\n\t\t\tbreak;\r\n\t\tcase 'success':\r\n\t\t\ticonName = 'checkmark-circle';\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\ticonName = 'checkmark-circle';\r\n\t}\r\n\t// 是否是实体类型,加上-fill,在icon组件库中,实体的类名是后面加-fill的\r\n\tif (fill) iconName += '-fill';\r\n\treturn iconName;\r\n}\r\n\r\nexport default type2icon\r\n","// 打乱数组\r\nfunction randomArray(array = []) {\r\n\t// 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0\r\n\treturn array.sort(() => Math.random() - 0.5);\r\n}\r\n\r\nexport default randomArray\r\n","import validation from './test.js';\r\n\r\n// 添加单位,如果有rpx,%,px等单位结尾或者值为auto,直接返回,否则加上rpx单位结尾\r\nexport default function addUnit(value = 'auto', unit = 'rpx') {\r\n    value = String(value);\r\n\t// 用uView内置验证规则中的number判断是否为数值\r\n    return validation.number(value) ? `${value}${unit}` : value;\r\n}","function random(min, max) {\r\n\tif (min >= 0 && max > 0 && max >= min) {\r\n\t\tlet gab = max - min + 1;\r\n\t\treturn Math.floor(Math.random() * gab + min);\r\n\t} else {\r\n\t\treturn 0;\r\n\t}\r\n}\r\n\r\nexport default random;\r\n","function trim(str, pos = 'both') {\r\n\tif (pos == 'both') {\r\n\t\treturn str.replace(/^\\s+|\\s+$/g, \"\");\r\n\t} else if (pos == \"left\") {\r\n\t\treturn str.replace(/^\\s*/, '');\r\n\t} else if (pos == 'right') {\r\n\t\treturn str.replace(/(\\s*$)/g, \"\");\r\n\t} else if (pos == 'all') {\r\n\t\treturn str.replace(/\\s+/g, \"\");\r\n\t} else {\r\n\t\treturn str;\r\n\t}\r\n}\r\n\r\nexport default trim\r\n","function toast(title, duration = 1500) {\r\n\tuni.showToast({\r\n\t\ttitle: title,\r\n\t\ticon: 'none',\r\n\t\tduration: duration\r\n\t})\r\n}\r\n\r\nexport default toast\r\n","// 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法\r\n// this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx\r\nexport default function getParent(name, keys) {\r\n\tlet parent = this.$parent;\r\n\t// 通过while历遍,这里主要是为了H5需要多层解析的问题\r\n\twhile (parent) {\r\n\t\t// 父组件\r\n\t\tif (parent.$options.name !== name) {\r\n\t\t\t// 如果组件的name不相等,继续上一级寻找\r\n\t\t\tparent = parent.$parent;\r\n\t\t} else {\r\n\t\t\tlet data = {};\r\n\t\t\t// 判断keys是否数组,如果传过来的是一个数组,那么直接使用数组元素值当做键值去父组件寻找\r\n\t\t\tif(Array.isArray(keys)) {\r\n\t\t\t\tkeys.map(val => {\r\n\t\t\t\t\tdata[val] = parent[val] ? parent[val] : '';\r\n\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\t// 历遍传过来的对象参数\r\n\t\t\t\tfor(let i in keys) {\r\n\t\t\t\t\t// 如果子组件有此值则用,无此值则用父组件的值\r\n\t\t\t\t\t// 判断是否空数组,如果是,则用父组件的值,否则用子组件的值\r\n\t\t\t\t\tif(Array.isArray(keys[i])) {\r\n\t\t\t\t\t\tif(keys[i].length) {\r\n\t\t\t\t\t\t\tdata[i] = keys[i];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdata[i] = parent[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if(keys[i].constructor === Object) {\r\n\t\t\t\t\t\t// 判断是否对象,如果是对象,且有属性,那么使用子组件的值,否则使用父组件的值\r\n\t\t\t\t\t\tif(Object.keys(keys[i]).length) {\r\n\t\t\t\t\t\t\tdata[i] = keys[i];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdata[i] = parent[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// 只要子组件有传值,即使是false值,也是“传值”了,也需要覆盖父组件的同名参数\r\n\t\t\t\t\t\tdata[i] = (keys[i] || keys[i] === false) ? keys[i] : parent[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn data;\r\n\t\t}\r\n\t}\r\n\r\n\treturn {};\r\n}","// 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法\r\n// this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx\r\n// 这里默认值等于undefined有它的含义,因为最顶层元素(组件)的$parent就是undefined,意味着不传name\r\n// 值(默认为undefined),就是查找最顶层的$parent\r\nexport default function $parent(name = undefined) {\r\n\tlet parent = this.$parent;\r\n\t// 通过while历遍,这里主要是为了H5需要多层解析的问题\r\n\twhile (parent) {\r\n\t\t// 父组件\r\n\t\tif (parent.$options && parent.$options.name !== name) {\r\n\t\t\t// 如果组件的name不相等,继续上一级寻找\r\n\t\t\tparent = parent.$parent;\r\n\t\t} else {\r\n\t\t\treturn parent;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}","export function os() {\r\n\treturn uni.getSystemInfoSync().platform;\r\n};\r\n\r\nexport function sys() {\r\n\treturn uni.getSystemInfoSync();\r\n}\r\n\r\n\r\n","let timeout = null;\r\n\r\n/**\r\n * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数\r\n * \r\n * @param {Function} func 要执行的回调函数 \r\n * @param {Number} wait 延时的时间\r\n * @param {Boolean} immediate 是否立即执行 \r\n * @return null\r\n */\r\nfunction debounce(func, wait = 500, immediate = false) {\r\n\t// 清除定时器\r\n\tif (timeout !== null) clearTimeout(timeout);\r\n\t// 立即执行,此类情况一般用不到\r\n\tif (immediate) {\r\n\t\tvar callNow = !timeout;\r\n\t\ttimeout = setTimeout(function() {\r\n\t\t\ttimeout = null;\r\n\t\t}, wait);\r\n\t\tif (callNow) typeof func === 'function' && func();\r\n\t} else {\r\n\t\t// 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法\r\n\t\ttimeout = setTimeout(function() {\r\n\t\t\ttypeof func === 'function' && func();\r\n\t\t}, wait);\r\n\t}\r\n}\r\n\r\nexport default debounce\r\n","let timer, flag;\r\n/**\r\n * 节流原理:在一定时间内,只能触发一次\r\n * \r\n * @param {Function} func 要执行的回调函数 \r\n * @param {Number} wait 延时的时间\r\n * @param {Boolean} immediate 是否立即执行\r\n * @return null\r\n */\r\nfunction throttle(func, wait = 500, immediate = true) {\r\n\tif (immediate) {\r\n\t\tif (!flag) {\r\n\t\t\tflag = true;\r\n\t\t\t// 如果是立即执行,则在wait毫秒内开始时执行\r\n\t\t\ttypeof func === 'function' && func();\r\n\t\t\ttimer = setTimeout(() => {\r\n\t\t\t\tflag = false;\r\n\t\t\t}, wait);\r\n\t\t}\r\n\t} else {\r\n\t\tif (!flag) {\r\n\t\t\tflag = true\r\n\t\t\t// 如果是非立即执行,则在wait毫秒内的结束处执行\r\n\t\t\ttimer = setTimeout(() => {\r\n\t\t\t\tflag = false\r\n\t\t\t\ttypeof func === 'function' && func();\r\n\t\t\t}, wait);\r\n\t\t}\r\n\t\t\r\n\t}\r\n};\r\nexport default throttle\r\n","// 此版本发布于2020-12-17\r\nlet version = '1.8.3';\r\n\r\nexport default {\r\n\tv: version,\r\n\tversion: version,\r\n\t// 主题名称\r\n\ttype: [\r\n\t\t'primary',\r\n\t\t'success',\r\n\t\t'info',\r\n\t\t'error',\r\n\t\t'warning'\r\n\t]\r\n}","// uniapp在H5中各API的z-index值如下:\r\n/**\r\n * actionsheet: 999\r\n * modal: 999\r\n * navigate: 998\r\n * tabbar: 998\r\n * toast: 999\r\n */\r\n\r\nexport default {\r\n\ttoast: 10090,\r\n\tnoNetwork: 10080,\r\n\t// popup包含popup,actionsheet,keyboard,picker的值\r\n\tpopup: 10075,\r\n\tmask: 10070,\r\n\tnavbar: 980,\r\n\ttopTips: 975,\r\n\tsticky: 970,\r\n\tindexListSticky: 965,\r\n}"],"sourceRoot":""}