You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2018/05/24 03:21:14 UTC

[1/4] incubator-weex git commit: + [Core] Add string cache

Repository: incubator-weex
Updated Branches:
  refs/heads/master d01f1086a -> 641e3826e


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
index a75092d..114f084 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -63,6 +63,7 @@ import com.taobao.weex.common.WXRequest;
 import com.taobao.weex.common.WXResponse;
 import com.taobao.weex.dom.WXEvent;
 import com.taobao.weex.http.WXHttpUtil;
+import com.taobao.weex.layout.ContentBoxMeasurement;
 import com.taobao.weex.performance.WXAnalyzerDataTransfer;
 import com.taobao.weex.tracing.WXTracing;
 import com.taobao.weex.ui.action.GraphicActionAddElement;
@@ -188,6 +189,8 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan
   private ComponentObserver mComponentObserver;
   private Map<String, GraphicActionAddElement> inactiveAddElementAction = new ArrayMap<>();
 
+  private Map<String, ContentBoxMeasurement> mContentBoxMeasurements = new ArrayMap<>();
+
   /**
    * set make weexCore run in single process mode
    * @param flag true means weexCore run in single process mode or multi process mode
@@ -1378,6 +1381,9 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan
       if(templateRef != null){
         templateRef = null;
       }
+      if (null != mContentBoxMeasurements) {
+        mContentBoxMeasurements.clear();
+      }
       mWXPerformance.afterInstanceDestroy(mInstanceId);
 
       WXBridgeManager.getInstance().post(new Runnable() {
@@ -1939,4 +1945,12 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan
       });
     }
   }
+
+  public void addContentBoxMeasurement(String ref, ContentBoxMeasurement contentBoxMeasurement) {
+    mContentBoxMeasurements.put(ref, contentBoxMeasurement);
+  }
+
+  public ContentBoxMeasurement getContentBoxMeasurement(String ref) {
+    return mContentBoxMeasurements.get(ref);
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
index a9f6730..c4b7aed 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
@@ -62,8 +62,9 @@ public class WXBridge implements IWXBridge {
 
   private native void nativeTakeHeapSnapshot(String filename);
 
-  private native void nativeBindMeasurementToWXCore(String instanceId, String ref, ContentBoxMeasurement contentBoxMeasurement);
-  private native void nativeBindMeasurementToRenderObject(long ptr, ContentBoxMeasurement contentBoxMeasurement);
+  private native void nativeBindMeasurementToRenderObject(long ptr);
+
+  private native void nativeBindMeasurementToWXCore(String instanceId, String ref);
 
   private native void nativeSetRenderContainerWrapContent(boolean wrap, String instanceId);
 
@@ -456,13 +457,26 @@ public class WXBridge implements IWXBridge {
   }
 
   @Override
-  public void bindMeasurementToWXCore(String instanceId, String ref, ContentBoxMeasurement contentBoxMeasurement) {
-    nativeBindMeasurementToWXCore(instanceId, ref, contentBoxMeasurement);
+  public void bindMeasurementToWXCore(String instanceId, String ref) {
+    nativeBindMeasurementToWXCore(instanceId, ref);
+  }
+
+  @Override
+  public ContentBoxMeasurement getMeasurementFunc(String instanceId, String ref) {
+    ContentBoxMeasurement obj = null;
+    try {
+      obj = WXBridgeManager.getInstance().getMeasurementFunc(instanceId, ref);
+    } catch (Throwable e) {
+      if (WXEnvironment.isApkDebugable()) {
+        WXLogUtils.e(TAG, "getMeasurementFunc throw exception:" + e.getMessage());
+      }
+    }
+    return obj;
   }
 
   @Override
-  public void bindMeasurementToRenderObject(long ptr, ContentBoxMeasurement contentBoxMeasurement){
-    nativeBindMeasurementToRenderObject(ptr, contentBoxMeasurement);
+  public void bindMeasurementToRenderObject(long ptr){
+    nativeBindMeasurementToRenderObject(ptr);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
index 4415fd7..f8cc404 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
@@ -2601,12 +2601,21 @@ public class WXBridgeManager implements Callback, BactchExecutor {
     return IWXBridge.INSTANCE_RENDERING;
   }
 
-  public void bindMeasurementToWXCore(String instanceId, String ref, ContentBoxMeasurement contentBoxMeasurement) {
-    mWXBridge.bindMeasurementToWXCore(instanceId, ref, contentBoxMeasurement);
+  public void bindMeasurementToWXCore(String instanceId, String ref) {
+    mWXBridge.bindMeasurementToWXCore(instanceId, ref);
   }
 
-  public void bindMeasurementToRenderObject(long ptr, ContentBoxMeasurement contentBoxMeasurement){
-    mWXBridge.bindMeasurementToRenderObject(ptr, contentBoxMeasurement);
+  public ContentBoxMeasurement getMeasurementFunc(String instanceId, String ref) {
+    ContentBoxMeasurement contentBoxMeasurement = null;
+    WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
+    if (instance != null) {
+      contentBoxMeasurement = instance.getContentBoxMeasurement(ref);
+    }
+    return contentBoxMeasurement;
+  }
+
+  public void bindMeasurementToRenderObject(long ptr){
+    mWXBridge.bindMeasurementToRenderObject(ptr);
   }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
index 725f32b..092a5f3 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
@@ -153,9 +153,11 @@ public interface IWXBridge extends IWXObject {
 
   int callHasTransitionPros(String instanceId, String ref, HashMap<String, String> styles);
 
-  void bindMeasurementToWXCore(String instanceId, String ref, ContentBoxMeasurement contentBoxMeasurement);
+  void bindMeasurementToWXCore(String instanceId, String ref);
 
-  void bindMeasurementToRenderObject(long ptr, ContentBoxMeasurement contentBoxMeasurement);
+  ContentBoxMeasurement getMeasurementFunc(String instanceId, String ref);
+
+  void bindMeasurementToRenderObject(long ptr);
 
   void setRenderContainerWrapContent(boolean wrap, String instanceId);
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/sdk/src/main/java/com/taobao/weex/ui/action/BasicComponentData.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/action/BasicComponentData.java b/android/sdk/src/main/java/com/taobao/weex/ui/action/BasicComponentData.java
index e70af17..9d12450 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/action/BasicComponentData.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/action/BasicComponentData.java
@@ -90,32 +90,34 @@ public class BasicComponentData<T extends View> {
   }
 
   public final void addShorthand(float[] shorthand, CSSShorthand.TYPE type) {
+    if (shorthand == null) {
+      shorthand = new float[] {0, 0, 0, 0};
+    }
     if (shorthand.length == 4) {
       switch (type) {
         case MARGIN:
-          if(mMargins == null){
+          if (mMargins == null) {
             mMargins = new CSSShorthand(shorthand);
-          }
-          else{
+          } else {
             mMargins.replace(shorthand);
           }
           break;
         case PADDING:
-          if(mPaddings == null){
+          if (mPaddings == null) {
             mPaddings = new CSSShorthand(shorthand);
-          }
-          else{
+          } else {
             mPaddings.replace(shorthand);
           }
           break;
         case BORDER:
-          if(mBorders == null){
+          if (mBorders == null) {
             mBorders = new CSSShorthand(shorthand);
-          }
-          else{
+          } else {
             mBorders.replace(shorthand);
           }
           break;
+        default:
+          break;
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index e5a7660..94f4848 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -220,9 +220,10 @@ public abstract class WXComponent<T extends View> extends WXBasicComponent imple
     mType = component.getType();
   }
 
-  protected void setContentBoxMeasurement(final ContentBoxMeasurement contentBoxMeasurement) {
+  protected final void setContentBoxMeasurement(final ContentBoxMeasurement contentBoxMeasurement) {
     this.contentBoxMeasurement = contentBoxMeasurement;
-    WXBridgeManager.getInstance().bindMeasurementToRenderObject(getRenderObjectPtr(), contentBoxMeasurement);
+    mInstance.addContentBoxMeasurement(getRef(), contentBoxMeasurement);
+    WXBridgeManager.getInstance().bindMeasurementToRenderObject(getRenderObjectPtr());
   }
 
   public void updateStyles(WXComponent component) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/weex_core/Source/CMakeLists.txt b/weex_core/Source/CMakeLists.txt
index 93e9d1f..d2d41d7 100644
--- a/weex_core/Source/CMakeLists.txt
+++ b/weex_core/Source/CMakeLists.txt
@@ -60,6 +60,7 @@ if (ANDROID)
     ./android/base/base64/modp_base64/modp_b64.cc
     ./android/base/string/scoped_jstring.cpp
     ./android/base/string/scoped_jstring_utf8.cpp
+    ./android/base/string/jstring_cache.cpp
     ./android/bridge/impl/bridge_impl_android.cpp
     ./android/bridge/impl/weexcore_impl_android.cpp
     ./android/bridge/impl/measure_mode_impl_android.cpp

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/android/base/string/jstring_cache.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/base/string/jstring_cache.cpp b/weex_core/Source/android/base/string/jstring_cache.cpp
new file mode 100644
index 0000000..13044f4
--- /dev/null
+++ b/weex_core/Source/android/base/string/jstring_cache.cpp
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#include <iostream>
+#include "jstring_cache.h"
+
+void JStringCache::clearRefCache(JNIEnv *env) {
+    for (auto iter = cacheList.begin(); iter != cacheList.end(); iter++) {
+        std::pair<std::string, jobject> pair = *iter;
+        if (nullptr != pair.second) {
+            env->DeleteWeakGlobalRef(pair.second);
+            pair.second = nullptr;
+        }
+    }
+    if (!posMap.empty()) {
+        posMap.clear();
+    }
+    cacheList.clear();
+}
+
+void JStringCache::put(std::string key, jobject value) {
+//    LOGD("Remove cache jstring_cache key: %s, find: %s, max: %s", key.c_str(), posMap.find(key) != posMap.end() ? "TRUE" : "FALSE", cacheList.size() >= capacity ? "TRUE" : "FALSE");
+    if (posMap.find(key) != posMap.end()) {
+        cacheList.erase(posMap[key]);
+    } else if (cacheList.size() >= capacity) {
+        posMap.erase(cacheList.back().first);
+        cacheList.pop_back();
+    }
+    cacheList.push_front({key, value});
+    posMap[key] = cacheList.begin();
+}
+
+jstring JStringCache::GetString(JNIEnv *env, std::string key) {
+//    LOGW("JStringCache map size: %d, list size: %d", posMap.size(), cacheList.size());
+    if (posMap.find(key) != posMap.end()) {
+        jobject obj = posMap[key]->second;
+        if (env->IsSameObject(obj, NULL) == JNI_FALSE) {
+            // JObject is still active
+            put(key, obj);
+//            LOGE("FOUND cache jstring_cache GetString key: %s,for cache key: %s", key.c_str(), env->GetStringUTFChars((jstring) obj, JNI_FALSE));
+            return (jstring) posMap[key]->second;
+        }
+        if (env->IsSameObject(obj, NULL) == JNI_TRUE) {
+            // Should delete WeakGlobalRef.
+//            LOGD("delete WeakGlobalRef: key: %s", key.c_str());
+            env->DeleteWeakGlobalRef(obj);
+        }
+    }
+    const jstring jRef = env->NewStringUTF(key.c_str());
+    const jobject jGlobalRef = env->NewWeakGlobalRef(jRef);
+    put(key, jGlobalRef);
+    env->DeleteLocalRef(jRef);
+    return (jstring) jGlobalRef;
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/android/base/string/jstring_cache.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/base/string/jstring_cache.h b/weex_core/Source/android/base/string/jstring_cache.h
new file mode 100644
index 0000000..f279a99
--- /dev/null
+++ b/weex_core/Source/android/base/string/jstring_cache.h
@@ -0,0 +1,46 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#ifndef jstring_cache_h
+#define jstring_cache_h
+
+#include <jni.h>
+#include <list>
+#include <unordered_map>
+
+class JStringCache;
+
+class JStringCache {
+
+public:
+    JStringCache(int capacity) : capacity(capacity) {}
+
+    ~JStringCache() {}
+
+public:
+    int capacity;
+    std::list<std::pair<std::string, jobject>> cacheList;
+    std::unordered_map<std::string, std::list<std::pair<std::string, jobject>>::iterator> posMap;
+    jstring GetString(JNIEnv *env, std::string key);
+    void clearRefCache(JNIEnv *env);
+
+private:
+    void put(std::string key, jobject value);
+};
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/android/bridge/impl/bridge_impl_android.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/bridge/impl/bridge_impl_android.cpp b/weex_core/Source/android/bridge/impl/bridge_impl_android.cpp
index be72c92..dbff771 100644
--- a/weex_core/Source/android/bridge/impl/bridge_impl_android.cpp
+++ b/weex_core/Source/android/bridge/impl/bridge_impl_android.cpp
@@ -24,6 +24,7 @@
 #include "bridge_impl_android.h"
 #include <core/layout/style.h>
 #include <map>
+#include <android/base/string/jstring_cache.h>
 
 static jmethodID jSetJSFrmVersionMethodId;
 static jmethodID jReportExceptionMethodId;
@@ -54,6 +55,7 @@ static jmethodID jCallUpdateAttrsMethodId;
 static jmethodID jCallLayoutMethodId;
 static jmethodID jCallCreateFinishMethodId;
 static jmethodID jCallAppendTreeCreateFinishMethodId;
+static jmethodID jCallGetMeasurementMethodId;
 
 static jmethodID jPostMessage;
 static jmethodID jDispatchMeaasge;
@@ -97,6 +99,8 @@ namespace WeexCore {
     jCallLayoutMethodId = NULL;
     jCallAppendTreeCreateFinishMethodId = NULL;
     jCallCreateFinishMethodId = NULL;
+
+    jCallGetMeasurementMethodId = NULL;
   }
 
   void static cpyCMap2JMap(std::map<std::string, std::string> *cMap, jobject &jMap, JNIEnv *env) {
@@ -106,10 +110,7 @@ namespace WeexCore {
     jstring jValue;
 
     for (; it != end; ++it) {
-      jKey = getStyleKeyFromCache(it->first.c_str());
-      if (jKey == nullptr) {
-        jKey = putStyleKeyToCache(it->first.c_str());
-      }
+      jKey = getKeyFromCache(env, it->first.c_str());
 
       jValue = env->NewStringUTF(it->second.c_str());
       env->CallObjectMethod(jMap, jMapPutMethodId, jKey, jValue);
@@ -122,10 +123,9 @@ namespace WeexCore {
     jstring jValue;
 
     for (int i = 0; i < cVector->size(); ++i) {
-      jKey = env->NewStringUTF((*cVector)[i].first.c_str());
+      jKey = getKeyFromCache(env, (*cVector)[i].first.c_str());
       jValue = env->NewStringUTF((*cVector)[i].second.c_str());
       env->CallObjectMethod(jMap, jMapPutMethodId, jKey, jValue);
-      env->DeleteLocalRef(jKey);
       env->DeleteLocalRef(jValue);
     }
   }
@@ -156,8 +156,6 @@ namespace WeexCore {
 
     if (jVersion != nullptr)
       env->DeleteLocalRef(jVersion);
-
-
   }
 
   void Bridge_Impl_Android::reportException(const char* pageId, const char *func, const char *exception_string) {
@@ -168,7 +166,7 @@ namespace WeexCore {
     JNIEnv *env = getJNIEnv();
     jstring jFunc = env->NewStringUTF(func);
     jstring jExceptionString = env->NewStringUTF(exception_string);
-    jstring jPageId = env->NewStringUTF(pageId);
+    jstring jPageId = getKeyFromCache(env, pageId);
 
     if (jReportExceptionMethodId == NULL) {
       jReportExceptionMethodId = env->GetMethodID(jBridgeClazz,
@@ -177,8 +175,6 @@ namespace WeexCore {
     }
     env->CallVoidMethod(jThis, jReportExceptionMethodId, jPageId, jFunc, jExceptionString);
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
     if (jFunc != nullptr)
       env->DeleteLocalRef(jFunc);
     if (jExceptionString != nullptr)
@@ -196,7 +192,7 @@ namespace WeexCore {
     JNIEnv *env = getJNIEnv();
     jbyteArray jTask = newJByteArray(env, task);
     jstring jCallback = env->NewStringUTF(callback);
-    jstring jPageId = env->NewStringUTF(pageId);
+    jstring jPageId = getKeyFromCache(env, pageId);
 
     int flag = -1;
 
@@ -214,8 +210,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callNative");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
     if (jTask != nullptr)
       env->DeleteLocalRef(jTask);
     if (jCallback != nullptr)
@@ -236,7 +230,7 @@ namespace WeexCore {
     jstring jMethod = env->NewStringUTF(method);
     jbyteArray jArgString = newJByteArray(env, argString);
     jbyteArray jOptString = newJByteArray(env, optString);
-    jstring jPageId = env->NewStringUTF(pageId);
+    jstring jPageId = getKeyFromCache(env, pageId);
 
     jobject result = nullptr;
 
@@ -250,8 +244,6 @@ namespace WeexCore {
       result = env->CallObjectMethod(jThis, jCallNativeModuleMethodId, jPageId, jModule, jMethod, jArgString, jOptString);
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
     if (jModule != nullptr)
       env->DeleteLocalRef(jModule);
     if (jMethod != nullptr)
@@ -276,8 +268,8 @@ namespace WeexCore {
     jstring jMethod = env->NewStringUTF(method);
     jbyteArray jArgString = newJByteArray(env, argString);
     jbyteArray jOptString = newJByteArray(env, optString);
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jMethod != nullptr) {
       if (jCallNativeComponentMethodId == NULL) {
@@ -288,10 +280,6 @@ namespace WeexCore {
       env->CallVoidMethod(jThis, jCallNativeComponentMethodId, jPageId, jRef, jMethod, jArgString, jOptString);
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
     if (jMethod != nullptr)
       env->DeleteLocalRef(jMethod);
     if (jArgString != nullptr)
@@ -350,7 +338,7 @@ namespace WeexCore {
     JNIEnv *env = getJNIEnv();
     jbyteArray jTask = newJByteArray(env, task);
     jstring jCallback = env->NewStringUTF(callback);
-    jstring jPageId = env->NewStringUTF(pageId);
+    jstring jPageId = getKeyFromCache(env, pageId);
 
     if (jCallUpdateFinishMethodId == NULL) {
       jCallUpdateFinishMethodId = env->GetMethodID(jBridgeClazz,
@@ -364,8 +352,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callUpdateFinish");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
     if (jTask != nullptr)
       env->DeleteLocalRef(jTask);
     if (jCallback != nullptr)
@@ -384,7 +370,7 @@ namespace WeexCore {
     JNIEnv *env = getJNIEnv();
     jbyteArray jTask = newJByteArray(env, task);
     jstring jCallback = env->NewStringUTF(callback);
-    jstring jPageId = env->NewStringUTF(pageId);
+    jstring jPageId = getKeyFromCache(env, pageId);
 
     if (jCallRefreshFinishMethodId == NULL) {
       jCallRefreshFinishMethodId = env->GetMethodID(jBridgeClazz,
@@ -397,8 +383,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callNative");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
     if (jTask != nullptr)
       env->DeleteLocalRef(jTask);
     if (jCallback != nullptr)
@@ -420,8 +404,9 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jMapConstructorMethodId == NULL)
       jMapConstructorMethodId = env->GetMethodID(jMapClazz, "<init>", "()V");
@@ -445,27 +430,25 @@ namespace WeexCore {
     float c_margins[4];
     float c_paddings[4];
     float c_borders[4];
-    jfloatArray jMargins = env->NewFloatArray(4);
-    jfloatArray jPaddings = env->NewFloatArray(4);
-    jfloatArray jBorders = env->NewFloatArray(4);
 
     c_margins[0] = margins.getMargin(kMarginTop);
     c_margins[1] = margins.getMargin(kMarginBottom);
     c_margins[2] = margins.getMargin(kMarginLeft);
     c_margins[3] = margins.getMargin(kMarginRight);
-    env->SetFloatArrayRegion(jMargins, 0, 4, c_margins);
 
     c_paddings[0] = paddings.getPadding(kPaddingTop);
     c_paddings[1] = paddings.getPadding(kPaddingBottom);
     c_paddings[2] = paddings.getPadding(kPaddingLeft);
     c_paddings[3] = paddings.getPadding(kPaddingRight);
-    env->SetFloatArrayRegion(jPaddings, 0, 4, c_paddings);
 
     c_borders[0] = borders.getBorderWidth(kBorderWidthTop);
     c_borders[1] = borders.getBorderWidth(kBorderWidthBottom);
     c_borders[2] = borders.getBorderWidth(kBorderWidthLeft);
     c_borders[3] = borders.getBorderWidth(kBorderWidthRight);
-    env->SetFloatArrayRegion(jBorders, 0, 4, c_borders);
+
+    jfloatArray jMargins = c2jFloatArray(env, c_margins);
+    jfloatArray jPaddings = c2jFloatArray(env, c_paddings);
+    jfloatArray jBorders = c2jFloatArray(env, c_borders);
 
     if (jCallCreateBodyMethodId == NULL)
       jCallCreateBodyMethodId = env->GetMethodID(jBridgeClazz,
@@ -487,10 +470,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callCreateBody");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
     env->DeleteLocalRef(jStyles);
     env->DeleteLocalRef(jAttributes);
     env->DeleteLocalRef(jEvents);
@@ -512,11 +491,10 @@ namespace WeexCore {
                                           const WXCorePadding &paddings,
                                           const WXCoreBorderWidth &borders,
                                           bool willLayout) {
-
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
-    jstring jParentRef = env->NewStringUTF(parentRef);
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
+    jstring jParentRef = getKeyFromCache(env, parentRef);
 
     if (jMapConstructorMethodId == NULL)
       jMapConstructorMethodId = env->GetMethodID(jMapClazz, "<init>", "()V");
@@ -540,27 +518,25 @@ namespace WeexCore {
     float c_margins[4];
     float c_paddings[4];
     float c_borders[4];
-    jfloatArray jMargins = env->NewFloatArray(4);
-    jfloatArray jPaddings = env->NewFloatArray(4);
-    jfloatArray jBorders = env->NewFloatArray(4);
 
     c_margins[0] = margins.getMargin(kMarginTop);
     c_margins[1] = margins.getMargin(kMarginBottom);
     c_margins[2] = margins.getMargin(kMarginLeft);
     c_margins[3] = margins.getMargin(kMarginRight);
-    env->SetFloatArrayRegion(jMargins, 0, 4, c_margins);
 
     c_paddings[0] = paddings.getPadding(kPaddingTop);
     c_paddings[1] = paddings.getPadding(kPaddingBottom);
     c_paddings[2] = paddings.getPadding(kPaddingLeft);
     c_paddings[3] = paddings.getPadding(kPaddingRight);
-    env->SetFloatArrayRegion(jPaddings, 0, 4, c_paddings);
 
     c_borders[0] = borders.getBorderWidth(kBorderWidthTop);
     c_borders[1] = borders.getBorderWidth(kBorderWidthBottom);
     c_borders[2] = borders.getBorderWidth(kBorderWidthLeft);
     c_borders[3] = borders.getBorderWidth(kBorderWidthRight);
-    env->SetFloatArrayRegion(jBorders, 0, 4, c_borders);
+
+    jfloatArray jMargins = c2jFloatArray(env, c_margins);
+    jfloatArray jPaddings = c2jFloatArray(env, c_paddings);
+    jfloatArray jBorders = c2jFloatArray(env, c_borders);
 
     if (jCallAddElementMethodId == NULL)
       jCallAddElementMethodId = env->GetMethodID(jBridgeClazz,
@@ -580,12 +556,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callAddElement");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
-    if (jParentRef != nullptr)
-      env->DeleteLocalRef(jParentRef);
     env->DeleteLocalRef(jStyles);
     env->DeleteLocalRef(jAttributes);
     env->DeleteLocalRef(jEvents);
@@ -602,8 +572,9 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jCallRemoveElementMethodId == NULL) {
       jCallRemoveElementMethodId = env->GetMethodID(jBridgeClazz,
@@ -616,11 +587,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callRemoveElement");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
-
     if (page != nullptr)
       page->CallBridgeTime(getCurrentTime() - startTime);
     return 0;
@@ -632,9 +598,10 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
-    jstring jParentRef = env->NewStringUTF(parentRef);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
+    jstring jParentRef = getKeyFromCache(env, parentRef);
 
     if (jCallMoveElementMethodId == NULL) {
       jCallMoveElementMethodId = env->GetMethodID(jBridgeClazz,
@@ -647,13 +614,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callRemoveElement");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
-    if (jParentRef != nullptr)
-      env->DeleteLocalRef(jParentRef);
-
     if (page != nullptr)
       page->CallBridgeTime(getCurrentTime() - startTime);
     return 0;
@@ -665,8 +625,8 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jCallAddEventMethodId == NULL) {
       jCallAddEventMethodId = env->GetMethodID(jBridgeClazz,
@@ -680,14 +640,9 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callAddEvent");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
-    env->DeleteLocalRef(jEventId);
-
     if (page != nullptr)
       page->CallBridgeTime(getCurrentTime() - startTime);
+    env->DeleteLocalRef(jEventId);
     return flag;
   }
 
@@ -697,8 +652,9 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jCallRemoveEventMethodId == NULL) {
       jCallRemoveEventMethodId = env->GetMethodID(jBridgeClazz,
@@ -712,14 +668,9 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callRemoveElement");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
-    env->DeleteLocalRef(jEventId);
-
     if (page != nullptr)
       page->CallBridgeTime(getCurrentTime() - startTime);
+    env->DeleteLocalRef(jEventId);
     return flag;
   }
 
@@ -732,8 +683,9 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jMapConstructorMethodId == NULL)
       jMapConstructorMethodId = env->GetMethodID(jMapClazz, "<init>", "()V");
@@ -774,10 +726,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callUpdateStyle");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
     env->DeleteLocalRef(jStyles);
     env->DeleteLocalRef(jMargins);
     env->DeleteLocalRef(jPaddings);
@@ -794,8 +742,9 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jMapConstructorMethodId == NULL)
       jMapConstructorMethodId = env->GetMethodID(jMapClazz, "<init>", "()V");
@@ -822,10 +771,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callUpdateStyle");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
     env->DeleteLocalRef(jAttrs);
 
     if (page != nullptr)
@@ -841,8 +786,9 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jCallLayoutMethodId == NULL)
       jCallLayoutMethodId = env->GetMethodID(jBridgeClazz,
@@ -857,11 +803,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callLayout");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
-
     if (page != nullptr)
       page->CallBridgeTime(getCurrentTime() - startTime);
     return flag;
@@ -873,7 +814,8 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
 
     if (jCallCreateFinishMethodId == NULL)
       jCallCreateFinishMethodId = env->GetMethodID(jBridgeClazz,
@@ -886,9 +828,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callCreateFinish");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-
     if (page != nullptr)
       page->CallBridgeTime(getCurrentTime() - startTime);
     return flag;
@@ -900,8 +839,9 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jCallAppendTreeCreateFinishMethodId == NULL)
       jCallAppendTreeCreateFinishMethodId = env->GetMethodID(jBridgeClazz,
@@ -915,11 +855,6 @@ namespace WeexCore {
       LOGE("instance destroy JFM must stop callAppendTreeCreateFinish");
     }
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
-
     if (page != nullptr)
       page->CallBridgeTime(getCurrentTime() - startTime);
     return flag;
@@ -931,8 +866,9 @@ namespace WeexCore {
     long long startTime = getCurrentTime();
 
     JNIEnv *env = getJNIEnv();
-    jstring jPageId = env->NewStringUTF(pageId);
-    jstring jRef = env->NewStringUTF(ref);
+
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
 
     if (jMapConstructorMethodId == NULL)
       jMapConstructorMethodId = env->GetMethodID(jMapClazz, "<init>", "()V");
@@ -954,10 +890,6 @@ namespace WeexCore {
     int flag = 0;
     flag = env->CallIntMethod(jThis, jCallHasTransitionProsMethodId, jPageId, jRef, jStyles);
 
-    if (jPageId != nullptr)
-      env->DeleteLocalRef(jPageId);
-    if (jRef != nullptr)
-      env->DeleteLocalRef(jRef);
     env->DeleteLocalRef(jStyles);
 
     if (page != nullptr)
@@ -985,4 +917,16 @@ namespace WeexCore {
     }
     env->CallVoidMethod(jWMThis, jDispatchMeaasge, jClientId, jVmId, jData, jCallback);
   }
+
+  jobject Bridge_Impl_Android::getMeasureFunc(const char* pageId, const char* ref) {
+    JNIEnv *env = getJNIEnv();
+    jstring jPageId = getKeyFromCache(env, pageId);
+    jstring jRef = getKeyFromCache(env, ref);
+    if (jCallGetMeasurementMethodId == NULL) {
+      jCallGetMeasurementMethodId = env->GetMethodID(jBridgeClazz,
+                                                     "getMeasurementFunc",
+                                                     "(Ljava/lang/String;Ljava/lang/String;)Lcom/taobao/weex/layout/ContentBoxMeasurement;");
+    }
+    return env->CallObjectMethod(jThis, jCallGetMeasurementMethodId, jPageId, jRef);
+  }
 } //end WeexCore
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/android/bridge/impl/bridge_impl_android.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/bridge/impl/bridge_impl_android.h b/weex_core/Source/android/bridge/impl/bridge_impl_android.h
index fee8942..50c8ba0 100644
--- a/weex_core/Source/android/bridge/impl/bridge_impl_android.h
+++ b/weex_core/Source/android/bridge/impl/bridge_impl_android.h
@@ -132,6 +132,8 @@ namespace WeexCore {
     void handlePostMessage(jstring jVmId, jbyteArray jData);
 
     void handleDispatchMessage(jstring jClientId, jstring jVmId, jbyteArray jData, jstring jCallback);
+
+    jobject getMeasureFunc(const char* pageId, const char* ref);
   };
 } //end WeexCore
 #endif //BridgeAndroid_h
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp b/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp
index ef79558..039174e 100644
--- a/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp
+++ b/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp
@@ -39,7 +39,8 @@ jmethodID jDoubleValueMethodId;
 jobject jThis;
 jobject jWMThis;
 std::map<std::string, jobject> componentTypeCache;
-std::map<std::string, jobject> styleKeyCache;
+
+JStringCache refCache(2048);
 
 static JavaVM *sVm = NULL;
 
@@ -69,22 +70,24 @@ jstring putComponentTypeToCache(const std::string type) {
   return (jstring) jGlobalType;
 }
 
-jstring getStyleKeyFromCache(const std::string key) {
-  std::map<std::string, jobject>::const_iterator iter = styleKeyCache.find(key);
-  if (iter != styleKeyCache.end()) {
-    return (jstring)(iter->second);
-  } else {
-    return nullptr;
-  }
+jstring getKeyFromCache(JNIEnv *env, const char *key) {
+  return refCache.GetString(env, key);
 }
 
-jstring putStyleKeyToCache(const std::string key) {
-  JNIEnv *env = getJNIEnv();
-  jstring jKey = env->NewStringUTF(key.c_str());
-  jobject jGlobalKey = env->NewGlobalRef(jKey);
-  styleKeyCache.insert(std::pair<std::string, jobject>(key, jGlobalKey));
-  env->DeleteLocalRef(jKey);
-  return (jstring) jGlobalKey;
+jfloatArray c2jFloatArray(JNIEnv *env, const float c_array[]) {
+  if (nullptr == c_array) {
+    return nullptr;
+  }
+  if (0 == c_array[0]
+      && 0 == c_array[1]
+      && 0 == c_array[2]
+      && 0 == c_array[3]) {
+    // Default value;
+    return nullptr;
+  }
+  jfloatArray jArray = env->NewFloatArray(4);
+  env->SetFloatArrayRegion(jArray, 0, 4, c_array);
+  return jArray;
 }
 
 static jint InitFrameworkEnv(JNIEnv *env, jobject jcaller,
@@ -100,27 +103,11 @@ static jint InitFrameworkEnv(JNIEnv *env, jobject jcaller,
   return WeexProxy::doInitFramework(env, jThis, framework, params, cacheDir, pieSupport);
 }
 
-static void BindMeasurementToWXCore(JNIEnv *env, jobject jcaller, jstring instanceId, jstring ref, jobject contentBoxMeasurement) {
-  if (contentBoxMeasurement == nullptr)
-    return;
-
-  RenderPage *page = RenderManager::GetInstance()->GetPage(jString2StrFast(env, instanceId));
-  if (page == nullptr)
-    return;
-
-  RenderObject *render = page->GetRenderObject(jString2StrFast(env, ref));
-  if (render == nullptr)
-    return;
-
-  render->BindMeasureFuncImplAndroid(contentBoxMeasurement);
-}
-
 static void BindMeasurementToRenderObject(JNIEnv* env, jobject jcaller,
-                                          jlong ptr,
-                                          jobject contentBoxMeasurement){
+                                          jlong ptr){
   RenderObject *render =  convert_long_to_render_object(ptr);
   if(render){
-    render->BindMeasureFuncImplAndroid(contentBoxMeasurement);
+      render->BindMeasureFuncImplAndroid();
   }
 }
 
@@ -194,10 +181,10 @@ static jboolean NotifyLayout(JNIEnv* env, jobject jcaller, jstring instanceId) {
   RenderPage *page = RenderManager::GetInstance()->GetPage(jString2StrFast(env, instanceId));
   if (page != nullptr) {
 
-#if RENDER_LOG
-    LOGD("[JNI] NotifyLayout >>>> pageId: %s, needForceLayout: %s, dirty: %s", jString2StrFast(env, instanceId).c_str(),
-         page->needLayout.load() ? "true" : "false", page->isDirty() ? "true" : "false");
-#endif
+//#if RENDER_LOG
+//    LOGD("[JNI] NotifyLayout >>>> pageId: %s, needForceLayout: %s, dirty: %s", jString2StrFast(env, instanceId).c_str(),
+//         page->needLayout.load() ? "true" : "false", page->isDirty() ? "true" : "false");
+//#endif
 
     if (!page->needLayout.load()) {
       page->needLayout.store(true);
@@ -568,13 +555,7 @@ jint OnLoad(JavaVM *vm, void *reserved) {
     }
     componentTypeCache.clear();
 
-    for (auto iter = styleKeyCache.begin(); iter != styleKeyCache.end(); iter++) {
-      if (iter->second != nullptr) {
-        env->DeleteGlobalRef(iter->second);
-        iter->second = nullptr;
-      }
-    }
-    styleKeyCache.clear();
+    refCache.clearRefCache(env);
 
     if (jThis)
       env->DeleteGlobalRef(jThis);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/android/bridge/impl/weexcore_impl_android.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/bridge/impl/weexcore_impl_android.h b/weex_core/Source/android/bridge/impl/weexcore_impl_android.h
index b43891f..b88256d 100644
--- a/weex_core/Source/android/bridge/impl/weexcore_impl_android.h
+++ b/weex_core/Source/android/bridge/impl/weexcore_impl_android.h
@@ -23,6 +23,7 @@
 #include <android/base/string/scoped_jstring.h>
 #include <android/base/string/scoped_jstring_utf8.h>
 #include <android/jsengine/multiprocess/WeexJSConnection.h>
+#include <android/base/string/jstring_cache.h>
 #include <jni.h>
 #include <string>
 #include <unistd.h>
@@ -41,8 +42,8 @@ extern jclass jWMBridgeClazz;
 extern JNIEnv *getJNIEnv();
 extern jstring getComponentTypeFromCache(const std::string type);
 extern jstring putComponentTypeToCache(const std::string type);
-extern jstring getStyleKeyFromCache(const std::string key);
-extern jstring putStyleKeyToCache(const std::string key);
+extern jstring getKeyFromCache(JNIEnv *env, const char *key);
+extern jfloatArray c2jFloatArray(JNIEnv *env, const float c_array[]);
 
 namespace WeexCore {
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h b/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h
index e89ad36..424b1f2 100644
--- a/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h
+++ b/weex_core/Source/android/jniprebuild/jniheader/WXBridge_jni.h
@@ -68,14 +68,8 @@ static jstring ExecJSOnInstance(JNIEnv* env, jobject jcaller,
 static void TakeHeapSnapshot(JNIEnv* env, jobject jcaller,
     jstring filename);
 
-static void BindMeasurementToWXCore(JNIEnv* env, jobject jcaller,
-    jstring instanceId,
-    jstring ref,
-    jobject contentBoxMeasurement);
-
 static void BindMeasurementToRenderObject(JNIEnv* env, jobject jcaller,
-    jlong ptr,
-    jobject contentBoxMeasurement);
+    jlong ptr);
 
 static void SetRenderContainerWrapContent(JNIEnv* env, jobject jcaller,
     jboolean wrap,
@@ -215,17 +209,9 @@ static const JNINativeMethod kMethodsWXBridge[] = {
 "Ljava/lang/String;"
 ")"
 "V", reinterpret_cast<void*>(TakeHeapSnapshot) },
-    { "nativeBindMeasurementToWXCore",
-"("
-"Ljava/lang/String;"
-"Ljava/lang/String;"
-"Lcom/taobao/weex/layout/ContentBoxMeasurement;"
-")"
-"V", reinterpret_cast<void*>(BindMeasurementToWXCore) },
     { "nativeBindMeasurementToRenderObject",
 "("
 "J"
-"Lcom/taobao/weex/layout/ContentBoxMeasurement;"
 ")"
 "V", reinterpret_cast<void*>(BindMeasurementToRenderObject) },
     { "nativeSetRenderContainerWrapContent",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/core/layout/layout.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/layout/layout.h b/weex_core/Source/core/layout/layout.h
index 4233896..7bd32dc 100644
--- a/weex_core/Source/core/layout/layout.h
+++ b/weex_core/Source/core/layout/layout.h
@@ -235,15 +235,15 @@ namespace WeexCore {
       markDirty();
     }
 
-    inline WXCoreMeasureFunc getMeasureFunc() const {
-      return measureFunc;
+    inline bool haveMeasureFunc() const {
+      return nullptr != measureFunc;
     }
 
-    inline bool haveMeasureFunc() const {
-      return measureFunc != nullptr;
+    inline WXCoreMeasureFunc getMeasureFunc() const {
+      return measureFunc;
     }
 
-    /** ================================ context =================================== **/
+      /** ================================ context =================================== **/
 
 
     inline void *getContext() const {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/core/render/manager/render_manager.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/manager/render_manager.cpp b/weex_core/Source/core/render/manager/render_manager.cpp
index d3e9b11..0429233 100644
--- a/weex_core/Source/core/render/manager/render_manager.cpp
+++ b/weex_core/Source/core/render/manager/render_manager.cpp
@@ -198,7 +198,7 @@ namespace WeexCore {
 #if RENDER_LOG
     LOGD("[RenderManager] ClosePage >>>> pageId: %s", pageId.c_str());
 #endif
-
+    page->OnRenderPageClose();
     mPages.erase(pageId);
     delete page;
     page = nullptr;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/core/render/node/render_object.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/node/render_object.cpp b/weex_core/Source/core/render/node/render_object.cpp
index 1ce1a4b..683fa62 100644
--- a/weex_core/Source/core/render/node/render_object.cpp
+++ b/weex_core/Source/core/render/node/render_object.cpp
@@ -31,7 +31,6 @@ namespace WeexCore {
     mStyles = new StylesMap();
     mAttributes = new AttributesMap();
     mEvents = new EventsSet();
-    mMeasureFunc_Impl_Android = nullptr;
     mIsRootRender = false;
   }
 
@@ -54,11 +53,6 @@ namespace WeexCore {
       mEvents = nullptr;
     }
 
-    if (mMeasureFunc_Impl_Android != nullptr) {
-      env->DeleteGlobalRef(mMeasureFunc_Impl_Android);
-      mMeasureFunc_Impl_Android = nullptr;
-    }
-
     for(auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) {
       RenderObject* child = static_cast<RenderObject*>(*it);
       if (child != nullptr) {
@@ -101,15 +95,17 @@ namespace WeexCore {
 
   WXCoreSize measureFunc_Impl(WXCoreLayoutNode *node, float width, MeasureMode widthMeasureMode,
                               float height, MeasureMode heightMeasureMode) {
-    JNIEnv *env = getJNIEnv();
     WXCoreSize size;
     size.height = 0;
     size.width = 0;
 
     jobject measureFunc = ((RenderObject *) node)->GetMeasureFuncImplAndroid();
 
-    if (node == nullptr || measureFunc == nullptr)
+    if (node == nullptr || measureFunc == nullptr) {
       return size;
+    }
+
+    JNIEnv *env = getJNIEnv();
 
     int widthMode = Unspecified(env);
     int heightMode = Unspecified(env);
@@ -123,35 +119,37 @@ namespace WeexCore {
     size.width = GetLayoutWidth(env, measureFunc);
     size.height = GetLayoutHeight(env, measureFunc);
 
+    env->DeleteLocalRef(measureFunc);
+
     return size;
   }
 
-  bool RenderObject::BindMeasureFuncImplAndroid(jobject measureFunc_impl_android) {
-    if (measureFunc_impl_android == nullptr)
-      return false;
-    this->mMeasureFunc_Impl_Android = getJNIEnv()->NewGlobalRef(measureFunc_impl_android);
-    setMeasureFunc(measureFunc_Impl);
-    return true;
+  void RenderObject::BindMeasureFuncImplAndroid() {
+     setMeasureFunc(measureFunc_Impl);
   }
 
-  bool RenderObject::BindMeasureFuncImplIOS(WXCoreMeasureFunc measureFunc_impl_ios) {
-    if (measureFunc_impl_ios == nullptr)
-      return false;
+  void RenderObject::BindMeasureFuncImplIOS(WXCoreMeasureFunc measureFunc_impl_ios) {
     setMeasureFunc(measureFunc_impl_ios);
-    return true;
   }
 
   void RenderObject::onLayoutBefore() {
-    if (this->GetMeasureFuncImplAndroid() == nullptr)
-      return;
+    jobject measureFunc = this->GetMeasureFuncImplAndroid();
+    if(nullptr == measureFunc) {
+       return;
+    }
+
     JNIEnv *env = getJNIEnv();
-    LayoutBeforeImplAndroid(env, this->GetMeasureFuncImplAndroid());
+    LayoutBeforeImplAndroid(env, measureFunc);
+    env->DeleteLocalRef(measureFunc);
   }
 
   void RenderObject::onLayoutAfter(float width, float height) {
-    if (this->GetMeasureFuncImplAndroid() == nullptr)
-      return;
+    jobject measureFunc = this->GetMeasureFuncImplAndroid();
+    if(nullptr == measureFunc) {
+       return;
+    }
     JNIEnv *env = getJNIEnv();
-    LayoutAfterImplAndroid(env, this->GetMeasureFuncImplAndroid(), width, height);
+    LayoutAfterImplAndroid(env, measureFunc, width, height);
+    env->DeleteLocalRef(measureFunc);
   }
 } //end WeexCore

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/core/render/node/render_object.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h
index 15d3f8c..7c45485 100644
--- a/weex_core/Source/core/render/node/render_object.h
+++ b/weex_core/Source/core/render/node/render_object.h
@@ -32,6 +32,7 @@
 #include <core/render/page/render_page.h>
 #include <core/css/constants_value.h>
 #include <android/base/log_utils.h>
+#include <android/bridge/impl/bridge_impl_android.h>
 #include <functional>
 
 
@@ -143,9 +144,9 @@ namespace WeexCore {
 
     ~RenderObject();
 
-    bool BindMeasureFuncImplAndroid(jobject measureFunc_impl_android);
+    void BindMeasureFuncImplAndroid();
 
-    bool BindMeasureFuncImplIOS(WXCoreMeasureFunc measureFunc_impl_ios);
+    void BindMeasureFuncImplIOS(WXCoreMeasureFunc measureFunc_impl_ios);
 
     void onLayoutBefore();
 
@@ -281,7 +282,10 @@ namespace WeexCore {
     void ApplyDefaultAttr();
 
     inline jobject GetMeasureFuncImplAndroid() {
-      return mMeasureFunc_Impl_Android;
+      if (!haveMeasureFunc()) {
+        return nullptr;
+      }
+      return Bridge_Impl_Android::getInstance()->getMeasureFunc(PageId().c_str(), Ref().c_str());
     }
 
     inline RenderObject *GetChild(const Index &index) {
@@ -447,7 +451,6 @@ namespace WeexCore {
     StylesMap *mStyles;
     AttributesMap *mAttributes;
     EventsSet *mEvents;
-    jobject mMeasureFunc_Impl_Android;
     float mViewPortWidth = -1;
     bool mIsRootRender;
   };

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/weex_core/Source/core/render/page/render_page.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/page/render_page.cpp b/weex_core/Source/core/render/page/render_page.cpp
index f0c6a05..cb10636 100644
--- a/weex_core/Source/core/render/page/render_page.cpp
+++ b/weex_core/Source/core/render/page/render_page.cpp
@@ -606,7 +606,6 @@ namespace WeexCore {
   }
 
   void RenderPage::OnRenderPageInit() {
-
   }
 
   void RenderPage::OnRenderProcessStart() {
@@ -622,6 +621,5 @@ namespace WeexCore {
   }
 
   void RenderPage::OnRenderPageClose() {
-
   }
 } //namespace WeexCore


[2/4] incubator-weex git commit: + [Core] Add string cache

Posted by ky...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/sdk/assets/weex-rax-api.js
----------------------------------------------------------------------
diff --git a/android/sdk/assets/weex-rax-api.js b/android/sdk/assets/weex-rax-api.js
index e532556..7a0ceb5 100644
--- a/android/sdk/assets/weex-rax-api.js
+++ b/android/sdk/assets/weex-rax-api.js
@@ -1,2 +1,2 @@
-var global=this,process={env:{}};!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t():"function"==typeof define&&define.amd?define(t):t()}(0,function(){"use strict";var e,t,n=(function(e){e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){var r=e.exports.createUniqueKey="undefined"!=typeof Symbol?Symbol:function(e){return"[["+e+"_"+Math.random().toFixed(8).slice(2)+"]]"},o=e.exports.isObject=function(e){return"object"==typeof e&&null!==e};e.exports.LISTENERS=r("listeners"),e.exports.CAPTURE=1,e.exports.BUBBLE=2,e.exports.ATTRIBUTE
 =3,e.exports.newNode=function(e,t,n){var r=o(n);return{listener:e,kind:t,once:r&&Boolean(n.once),passive:r&&Boolean(n.passive),next:null}}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var o=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._listeners={}}return r(e,[{key:"_addListener",value:function(e,t,n){return this._listeners[e]=this._listeners[e]||[],this._listeners[e].push({listener:t,once:n}),this}},{key:"on",value:function(e,t){return this._addListener(e,t,!1)}},{key:"once",value:function(e,t){return this._addListener(e,t,!0)}},{key:"off",value:function(e,t){return this._listeners[e]&&this._listeners[e].length?t?(this._listeners[e]
 =this._listeners[e].filter(function(e){return!(e.listener===t)}),this):(delete this._listeners[e],this):this}},{key:"emit",value:function(e,t){var n=this;return this._listeners[e]?(this._listeners[e].forEach(function(r){r.listener.apply(n,[t]),r.once&&n.removeListener(e,r.listener)}),this):this}}]),e}();t.default=o,e.exports=t.default},function(e,t,n){var r=n(0),o=n(15),i=n(16),a=r.isObject,u=r.LISTENERS,s=r.CAPTURE,l=r.BUBBLE,f=r.ATTRIBUTE,c=r.newNode,d=o.defineCustomEventTarget,p=i.createEventWrapper,h=i.STOP_IMMEDIATE_PROPAGATION_FLAG,v=i.PASSIVE_LISTENER_FLAG,y="undefined"!=typeof window&&void 0!==window.EventTarget,_=e.exports=function e(){var t=arguments;if(!(this instanceof e)){if(1===arguments.length&&Array.isArray(arguments[0]))return d(e,arguments[0]);if(arguments.length>0){for(var n=Array(arguments.length),r=0;r<arguments.length;++r)n[r]=t[r];return d(e,n)}throw new TypeError("Cannot call a class as a function")}Object.defineProperty(this,u,{value:Object.create(null)})};_
 .prototype=Object.create((y?window.EventTarget:Object).prototype,{constructor:{value:_,writable:!0,configurable:!0},addEventListener:{value:function(e,t,n){if(null==t)return!1;if("function"!=typeof t&&"object"!=typeof t)throw new TypeError('"listener" is not an object.');var r=(a(n)?Boolean(n.capture):Boolean(n))?s:l,o=this[u][e];if(null==o)return this[u][e]=c(t,r,n),!0;for(var i=null;null!=o;){if(o.listener===t&&o.kind===r)return!1;i=o,o=o.next}return i.next=c(t,r,n),!0},configurable:!0,writable:!0},removeEventListener:{value:function(e,t,n){if(null==t)return!1;for(var r=(a(n)?Boolean(n.capture):Boolean(n))?s:l,o=null,i=this[u][e];null!=i;){if(i.listener===t&&i.kind===r)return null==o?this[u][e]=i.next:o.next=i.next,!0;o=i,i=i.next}return!1},configurable:!0,writable:!0},dispatchEvent:{value:function(e){var t=e.type,n=this[u][t];if(null==n)return!0;for(var r=p(e,this),o=null;null!=n&&(n.once?null==o?this[u][t]=n.next:o.next=n.next:o=n,r[v]=n.passive,"function"==typeof n.listener?n.l
 istener.call(this,r):n.kind!==f&&"function"==typeof n.listener.handleEvent&&n.listener.handleEvent(r),!r[h]);)n=n.next;return!r.defaultPrevented},configurable:!0,writable:!0}})},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.injectContext=function(){var e=new Function("return this")(),t=h(e);for(var n in t)void 0===e[n]&&"__weex_data__"!=n&&(e[n]=t[n])},t.resetInstanceContext=h;var o,i=n(4),a=n(1),u=(o=a)&&o.__esModule?o:{default:o};var s="@weex-module/",l=s+"modal",f=s+"navigator",c=s+"globalEvent",d=function(){},p={};function h(e){e.instanceId;var t=e.document,o=e.bundleUrl,a=e.__weex_document__,s=e.__weex_options__,h=e.__weex_data__,v=e.__weex_config__;p=s.weex;var y=Date.now(),_="object"===("undefined"==typeof WXEnvironment?"undefined":r(WXEnvironment))&&
 WXEnvironment||{},m=n(6)(),b="function"==typeof b?b:m.Promise,g="function"==typeof g?g:m.Symbol,w="function"==typeof w?w:m.Set,x="function"==typeof x?x:m.Map,E="function"==typeof E?E:m.WeakMap,C="function"==typeof C?C:m.WeakSet,S=m.URL,O=m.URLSearchParams,k=m.FontFace,P=m.matchMedia;o?o.split("//")[0]||(o="https:"+o):console.error('Error: Must have bundleUrl option when createInstance, downgrade to "about:blank".');var j=new S(o),N={},I=n(7)(N),T=n(8)(N,p),A=n(9)(T);n(11)(T,t);var R=n(12)(T,j),M=n(13)(T,b),D=M.fetch,L=M.Headers,W=M.Request,U=M.Response,B=n(14)(T),F=n(17)(T),q=n(18)(T,t),H=q.setTimeout,z=q.clearTimeout,V=q.setInterval,G=q.clearInterval,J=q.requestAnimationFrame,K=q.cancelAnimationFrame,Q=n(19)(),X=Q.atob,$=Q.btoa,Z=n(20)(y),Y=n(21)(),ee=Y.Event,te=Y.CustomEvent,ne=new u.default,re=null;var oe={Promise:b,Symbol:g,Map:x,Set:w,WeakMap:E,WeakSet:C,name:"",closed:!1,atob:X,btoa:$,performance:Z,document:t,location:R,navigator:{product:"Weex",platform:_.platform,appName:_.a
 ppName,appVersion:_.appVersion,userAgent:"Weex/"+_.weexVersion+" "+_.platform+"/"+_.osVersion+" ("+_.deviceModel+") "+_.appName+"/"+_.appVersion},screen:{width:_.deviceWidth,height:_.deviceHeight,availWidth:_.deviceWidth,availHeight:_.deviceHeight,colorDepth:24,pixelDepth:24},devicePixelRatio:_.scale,fetch:D,Headers:L,Response:U,Request:W,XMLHttpRequest:B,URL:S,URLSearchParams:O,FontFace:k,WebSocket:F,Event:ee,CustomEvent:te,matchMedia:P,setTimeout:H,clearTimeout:z,setInterval:V,clearInterval:G,requestAnimationFrame:J,cancelAnimationFrame:K,setImmediate:"function"==typeof setImmediate&&setImmediate||function(e){H(e,0)},clearImmediate:"function"==typeof setImmediate&&setImmediate||function(e){z(e)},frameworkVersion:null,alert:function(e){T(l).alert({message:e},function(){})},open:function(e){T(f).push({url:e,animated:!0},d)},close:function(){T(f).close({animated:!0},d,d)},postMessage:function(e,t){var n={origin:R.origin,data:JSON.parse(JSON.stringify(e)),type:"message",source:oe};"fu
 nction"==typeof BroadcastChannel&&("*"==t?new BroadcastChannel("message").postMessage(n):new BroadcastChannel("message"+t).postMessage(n))},addEventListener:function(e,t){if("message"===e){if("function"==typeof BroadcastChannel){var n=new BroadcastChannel("message"),r=new BroadcastChannel("message"+o);n.onmessage=function(e){t(e.data)},r.onmessage=function(e){t(e.data)}}}else ne.on(e,t)},removeEventListener:function(e,t){ne.off(e,t)},dispatchEvent:function(e){ne.emit(e.type,e)},set onerror(e){"function"==typeof e?(re=e,function e(){e.once||(T(c).addEventListener("exception",function(e){re(e.exception,e.bundleUrl,0,0,new Error(e.exception,e.bundleUrl,0))}),e.once=!0)}()):re=null},get onerror(){return re},define:I,require:T,callNative:function(){},__weex_document__:a,__weex_module_supports__:p.isRegisteredModule,__weex_tag_supports__:p.isRegisteredComponent,__weex_define__:I,__weex_require__:T,__weex_downgrade__:A,__weex_env__:_,__weex_code__:"",__weex_options__:s,__weex_data__:h,__we
 ex_config__:v};return function(e,t,n){for(var r in t)e[r]={factory:t[r].bind(n),module:{exports:{}},isInitialized:!1}}(N,i.ModuleFactories,oe),oe.self=oe.window=oe,console.log("Rax jsfm init window",void 0===oe?"undefined":r(oe)),oe}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});t.ModuleFactories={rax:n(5)}},function(e,t){e.exports=function(e,t,n){var r=this.__weex_document__,o=this.document;n.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=17)}([function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default={component:null,mountID:1,san
 dbox:!0,rootComponents:{},rootInstances:{},hook:null,driver:null,monitor:null},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=l(n(0)),o=n(6),i=l(n(9)),a=l(n(2)),u=l(n(3)),s=l(n(19));function l(e){return e&&e.__esModule?e:{default:e}}var f="$$instance";t.default={set:function(e,t){e[f]||(e[f]=t,t.rootID&&(r.default.rootInstances[t.rootID]=t,r.default.rootComponents[t.rootID]=t._internal))},get:function(e){return e[f]},remove:function(e){var t=this.get(e);t&&(e[f]=null,t.rootID&&(delete r.default.rootComponents[t.rootID],delete r.default.rootInstances[t.rootID]))},mount:function(e,t,n){r.default.driver.beforeRender&&r.default.driver.beforeRender(),null==t&&(t=r.default.driver.createBody());var l=void 0;if(n){var f=n._internal;l=f._processChildContext(f._context)}var c=this.get(t);if(c&&c.isRootComponent){var d=c.getRenderedComponent(),p=d._currentElement;if((0,u.default)(p,e)){var h=d._context;return d.updateComponent(p,e,h,l||h),c}r.defaul
 t.hook.Reconciler.unmountComponent(c),(0,i.default)(t)}var v=(0,o.createElement)(s.default,null,e),y=l||{},_=(0,a.default)(v).mountComponent(t,null,y);return this.set(t,_),r.default.driver.afterRender&&r.default.driver.afterRender(_),r.default.hook.Mount._renderNewRootComponent(_._internal),_}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(0),a=(r=i)&&r.__esModule?r:{default:r};t.default=function(e){var t=void 0;if(null==e||!1===e||!0===e)t=new a.default.EmptyComponent;else if(Array.isArray(e))t=new a.default.FragmentComponent(e);else if("object"===(void 0===e?"undefined":o(e))&&e.type)t="string"==typeof e.type?new a.default.NativeComponent(e):new a.default.CompositeComponent(e);else{if("string"!=typeof e&&"number"!=typeof e)throw ne
 w Error("Invalid element type: "+e+". (keys: "+Object.keys(e)+")");t=new a.default.TextComponent(e)}return t._mountIndex=0,t},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e,t){var n=null===e,o=null===t;if(n||o)return n===o;var i=void 0===e?"undefined":r(e),a=void 0===t?"undefined":r(t);return"string"===i||"number"===i?"string"===a||"number"===a:"object"===i&&"object"===a&&e.type===t.type&&e.key===t.key},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&
 e(t,r),t}}();var o=function(){function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.props=t,this.context=n,this.refs={},this.updater=r}return r(e,[{key:"isComponentClass",value:function(){}},{key:"setState",value:function(e,t){this.updater.setState(this,e,t)}},{key:"forceUpdate",value:function(e){this.updater.forceUpdate(this,e)}}]),e}();t.default=o,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(1)),o=i(n(0));function i(e){return e&&e.__esModule?e:{default:e}}t.default={ComponentTree:{getClosestInstanceFromNode:function(e){return r.default.get(e)},getNodeFromInstance:function(e){for(;e._renderedComponent;)e=e._renderedComponent;return e?e._nativeNode:null}},Mount:{_instancesByReactRootID:o.default.rootComponents,_renderNewRootComponent:function(){}},Reconciler:{mountComponent:function(){},receiveComponent:function(){},unmountComponent:function(){}},monitor:null},e.
 exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.createElement=c,t.createFactory=function(e){var t=c.bind(null,e);return t.type=e,t},t.cloneElement=function(e,t){var n=arguments;if(!d(e))throw Error("cloneElement: not a valid element."+l());var r=Object.assign({},e.props),a=e.key,u=e.ref,c=e._owner;if(t){void 0!==t.ref&&(u=t.ref,c=o.default.component),void 0!==t.key&&(a=String(t.key));var p=void 0;e.type&&e.type.defaultProps&&(p=e.type.defaultProps);var h=void 0;for(h in t)t.hasOwnProperty(h)&&!s.hasOwnProperty(h)&&(void 0===t[h]&&void 0!==p?r[h]=p[h]:r[h]=t[h])}for(var v=arguments.length,y=Array(v>2?v-2:0),_=2;_<v;_++)y[_-2]=n[_];y.length&&(r.children=(0,i.default)(y));return new f(e.type,a,u,r,c)},t.isValidElement=d;var o=u(n(0)),i=u(n(7)),
 a=n(8);function u(e){return e&&e.__esModule?e:{default:e}}var s={key:!0,ref:!0};function l(){if(o.default.component){var e=o.default.component.getName();if(e)return" Check the render method of `"+e+"`."}return""}function f(e,t,n,r,o){return a.isWeex&&(r=function(e,t){if("text"===e){var n=t.children,r=t.value;null==r&&null!=n&&(Array.isArray(n)?n=n.map(function(e){return"number"==typeof e||"string"==typeof e?e:""}).join(""):"number"!=typeof n&&"string"!=typeof n&&(n=""),t.value=String(n)),t.children=null}return t}(e,r)),{type:e,key:t,ref:n,props:r,_owner:o}}function c(e,t,n){var a=arguments;if(null==e)throw Error("createElement: type should not be null or undefined."+l());var u={},c=void 0,d=null,p=null;if(null!=t)for(c in p=void 0===t.ref?null:t.ref,d=void 0===t.key?null:String(t.key),t)s[c]||(u[c]=t[c]);var h=arguments.length-2;if(h>0)if(1!==h||Array.isArray(n)){var v=n;if(h>1){v=new Array(h);for(var y=0;y<h;y++)v[y]=a[y+2]}u.children=(0,i.default)(v)}else u.children=n;if(e&&e.defa
 ultProps){var _=e.defaultProps;for(c in _)void 0===u[c]&&(u[c]=_[c])}return u.style&&(Array.isArray(u.style)||"object"===r(u.style))&&(u.style=function e(t){if(t){if(Array.isArray(t)){for(var n={},r=0;r<t.length;++r){var o=e(t[r]);if(o)for(var i in o)n[i]=o[i]}return n}return t}}(u.style)),new f(e,d,p,u,o.default.component)}function d(e){return"object"===(void 0===e?"undefined":r(e))&&null!==e&&e.type&&e.props}t.default=f},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(null==e)return e;var t=[];(function e(t,n){if(Array.isArray(t))for(var r=0,o=t.length;r<o;r++)e(t[r],n);else n.push(t)})(e,t),1===t.length&&(t=t[0]);return t},e.exports=t.default},function(e,t,n){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Sy
 mbol&&"symbol"===r(Symbol.iterator)?function(e){return void 0===e?"undefined":r(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":r(e)};t.isWeb="object"===("undefined"==typeof navigator?"undefined":o(navigator))&&("Mozilla"===navigator.appCodeName||"Gecko"===navigator.product),t.isNode=void 0!==process&&!(!process.versions||!process.versions.node),t.isWeex="function"==typeof callNative,t.isReactNative="undefined"!=typeof __fbBatchedBridgeConfig;t.default=e.exports,t.default=e.exports},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=i.default.get(e);if(!t)return!1;return i.default.remove(e),t._internal.unmountComponent(),!0};var r,o=n(1),i=(r=o)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(22)),o=i(n(1));i(n(0));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,
 t,n,i){"function"==typeof n&&(i=n,n=null),n=n||{},(0,r.default)(n);var a=o.default.mount(e,t,n.parent).getPublicInstance();return i&&i.call(a),a},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=f(n(0)),i=f(n(12)),a=f(n(2)),u=f(n(3)),s=f(n(13)),l=f(n(1));function f(e){return e&&e.__esModule?e:{default:e}}var c="style",d="children",p=/on[A-Z]/,h=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._currentElement=t}return r(e,[{key:"mountComponent",value:function(e,t,n,r){this._parent=e,this._parentInstance=t,this._context=n,this._mountID=o.default.mountID++;var a=this._currentElement.props,u={_internal:this,type:this._curr
 entElement.type,props:a},s=a.append;this._instance=u,this._prevStyleCopy=Object.assign({},a.style);var l=this.getNativeNode();"tree"!==s&&(r?r(l,e):o.default.driver.appendChild(l,e)),this._currentElement&&this._currentElement.ref&&i.default.attach(this._currentElement._owner,this._currentElement.ref,this);var f=a.children;return null!=f&&this.mountChildren(f,n),"tree"===s&&(r?r(l,e):o.default.driver.appendChild(l,e)),o.default.hook.Reconciler.mountComponent(this),u}},{key:"mountChildren",value:function(e,t){var n=this;Array.isArray(e)||(e=[e]);var r=this._renderedChildren={};return e.map(function(e,o){var i=(0,a.default)(e),u=(0,s.default)(r,e,o);return r[u]=i,i._mountIndex=o,i.mountComponent(n.getNativeNode(),n._instance,t,null)})}},{key:"unmountChildren",value:function(e){var t=this._renderedChildren;if(t){for(var n in t){t[n].unmountComponent(e)}this._renderedChildren=null}}},{key:"unmountComponent",value:function(e){if(this._nativeNode){var t=this._currentElement.ref;t&&i.defaul
 t.detach(this._currentElement._owner,t,this),l.default.remove(this._nativeNode),e||o.default.driver.removeChild(this._nativeNode,this._parent),o.default.driver.removeAllEventListeners(this._nativeNode)}this.unmountChildren(e),o.default.hook.Reconciler.unmountComponent(this),this._currentElement=null,this._nativeNode=null,this._parent=null,this._parentInstance=null,this._context=null,this._instance=null,this._prevStyleCopy=null}},{key:"updateComponent",value:function(e,t,n,r){this._currentElement=t,i.default.update(e,t,this);var a=e.props,u=t.props;this.updateProperties(a,u),this.updateChildren(u.children,r),o.default.hook.Reconciler.receiveComponent(this)}},{key:"updateProperties",value:function(e,t){var n=this,r=void 0,i=void 0,a=void 0;for(r in e)if(r!==d&&!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&null!=e[r])if(r===c){var u=n._prevStyleCopy;for(i in u)u.hasOwnProperty(i)&&((a=a||{})[i]="");n._prevStyleCopy=null}else p.test(r)?"function"==typeof e[r]&&o.default.driver.removeEventL
 istener(n.getNativeNode(),r.slice(2).toLowerCase(),e[r]):o.default.driver.removeAttribute(n.getNativeNode(),r,e[r]);for(r in t){var s=t[r],l=r===c?n._prevStyleCopy:null!=e?e[r]:void 0;if(r!==d&&t.hasOwnProperty(r)&&s!==l&&(null!=s||null!=l))if(r===c)if(s?s=n._prevStyleCopy=Object.assign({},s):n._prevStyleCopy=null,null!=l){for(i in l)!l.hasOwnProperty(i)||s&&s.hasOwnProperty(i)||((a=a||{})[i]="");for(i in s)s.hasOwnProperty(i)&&l[i]!==s[i]&&((a=a||{})[i]=s[i])}else a=s;else if(p.test(r)){var f=r.slice(2).toLowerCase();"function"==typeof l&&o.default.driver.removeEventListener(n.getNativeNode(),f,l,t),"function"==typeof s&&o.default.driver.addEventListener(n.getNativeNode(),f,s,t)}else null!=s?o.default.driver.setAttribute(n.getNativeNode(),r,s):o.default.driver.removeAttribute(n.getNativeNode(),r,e[r])}a&&o.default.driver.setStyles(this.getNativeNode(),a)}},{key:"updateChildren",value:function(e,t){var n=this,r=this._renderedChildren;if(null!=e||null!=r){var i={},l={};if(null!=e){Ar
 ray.isArray(e)||(e=[e]);for(var f=0,c=e.length;f<c;f++){var d=e[f],p=(0,s.default)(i,d,f),h=r&&r[p],v=h&&h._currentElement;if(null!=h&&(0,u.default)(v,d))h.updateComponent(v,d,t,t),i[p]=h;else{if(h){var y=h.getNativeNode();h.unmountComponent(!0),l[p]=y}i[p]=(0,a.default)(d)}}}var _=void 0,m=void 0;if(null!=r)for(var b in r)if(r.hasOwnProperty(b)){var g=r[b],w=!i[b];_?w&&g.unmountComponent():(_=g,m=w)}null!=i&&function(){var e=0,a=0,u=null,s=[],f=function(f){if(!i.hasOwnProperty(f))return"continue";var c=i[f],d=r&&r[f];if(d===c){var p=d.getNativeNode();if(Array.isArray(p)||(p=[p]),d._mountIndex<e){Array.isArray(u)&&(u=u[u.length-1]);for(var h=p.length-1;h>=0;h--)o.default.driver.insertAfter(p[h],u)}s=s.concat(p),e=Math.max(d._mountIndex,e),d._mountIndex=a}else{null!=d&&(e=Math.max(d._mountIndex,e));var v=n.getNativeNode();Array.isArray(v)&&(v=n._parent),c.mountComponent(v,n._instance,t,function(e,t){var n=l[f];if(Array.isArray(e)||(e=[e]),n){Array.isArray(n)||(n=[n]);for(var r=void 0
 ,i=0;i<e.length;i++){var a=e[i];n[i]?o.default.driver.replaceChild(a,n[i]):o.default.driver.insertAfter(a,r),r=a}if(e.length<n.length)for(var c=e.length;c<n.length;c++)o.default.driver.removeChild(n[c])}else{Array.isArray(u)&&(u=u[u.length-1]);var d=void 0;_&&!u&&(d=_.getNativeNode(),Array.isArray(d)&&(d=d[0]));for(var p=e.length-1;p>=0;p--){var h=e[p];u?o.default.driver.insertAfter(h,u):d?o.default.driver.insertBefore(h,d):o.default.driver.appendChild(h,t)}}s=s.concat(e)}),c._mountIndex=a}a++,u=c.getNativeNode()};for(var c in i)f(c);if(Array.isArray(n._nativeNode)){n._nativeNode.splice(0,n._nativeNode.length);for(var d=0;d<s.length;d++)n._nativeNode.push(s[d])}}(),m&&_.unmountComponent(),this._renderedChildren=i}}},{key:"getNativeNode",value:function(){return null==this._nativeNode&&(this._nativeNode=o.default.driver.createElement(this._instance),l.default.set(this._nativeNode,this._instance)),this._nativeNode}},{key:"getPublicInstance",value:function(){return this.getNativeNode()}
 },{key:"getName",value:function(){return this._currentElement.type}}]),e}();t.default=h,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default={update:function(e,t,n){var r=null!=e&&e.ref,o=null!=t&&t.ref;r!==o&&(null!=r&&this.detach(e._owner,r,n),null!=o&&this.attach(t._owner,o,n))},attach:function(e,t,n){if(!e)throw new Error("You might be adding a ref to a component that was not created inside a component's `render` method, or you have multiple copies of Rax loaded.");var r=n.getPublicInstance();"function"==typeof t?t(r):e._instance.refs[t]=r},detach:function(e,t,n){if("function"==typeof t)t(null);else{var r=n.getPublicInstance();e._instance.refs[t]===r&&delete e._instance.refs[t]}}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r=t&&t.key,o="string"==typeof r,i="."+n.toString(36);if(o){var a="$"+r,u=void 0===e[a];return u||console.warn('Encountered two children with the
  same key "'+r+'".'),u?a:i}return i},e.exports=t.default},function(e,t,n){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"===r(Symbol.iterator)?function(e){return void 0===e?"undefined":r(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":r(e)};t.isRem=f,t.calcRem=c,t.getRem=function(){return l[s]},t.setRem=function(e){l[s]=e},t.isUnitNumber=d,t.convertUnit=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l[s];{if(t&&d(e,t))return e*n+"px";if(f(e))return c(e,n)}return e};var i={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,fl
 exGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridColumn:!0,fontWeight:!0,lineClamp:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,lines:!0},a="rem",u=/[-+]?\d*\.?\d+rem/g,s="__global_rem_unit__",l="object"===("undefined"==typeof window?"undefined":o(window))?window:"object"===(void 0===l?"undefined":o(l))?l:{};function f(e){return"string"==typeof e&&-1!==e.indexOf(a)}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l[s];return e.replace(u,function(e){return parseFloat(e)*t+"px"})}function d(e,t){return"number"==typeof e&&!i[t]}null==l[s]&&(l[s]=1),t.default=e.exports,t.default=e.exports},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.transformPropsAttrsToStyle=function(e,t){return e.style=e.style||{},t.forEach(function(t){e[t]&&!e.style[t]&&(e.style[t]=e[t],delete e[t])}),e},t.renamePropsAttr=function(e,t,n){e[t]&&!e[n]&&(e[n]=e[t],delete e[t]);return e},t.default=e.exports,t.d
 efault=e.exports},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(0),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e){if(null==e)return null;if(e.ownerDocument||e.nodeType)return e;if(e._nativeNode)return e._nativeNode;if("string"==typeof e)return i.default.driver.getElementById(e);if("function"!=typeof e.render)throw new Error("findDOMNode: find by neither component nor DOM node.");var t=e._internal;if(t){for(;!t._nativeNode;)if(null==(t=t._renderedComponent))return null;return t._nativeNode}throw new Error("findDOMNode: find on an unmounted component.")},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.Children=t.version=t.setNativeProps=t.findComponentInstance=t.unmountComponentAtNode=t.findDOMNode=t.hydrate=t.render=t.PropTypes=t.PureComponent=t.Component=t.createFactory=t.isValidElement=t.cloneElement=t.createElement=void 0,n(18);var r=n(6),o=v(n(4)),i=v(n(20)),a=v(n(21)),u=v(n(10)),s=v(n(42)),l=v(n(16))
 ,f=v(n(9)),c=v(n(43)),d=v(n(44)),p=v(n(45)),h=v(n(46));function v(e){return e&&e.__esModule?e:{default:e}}t.createElement=r.createElement,t.cloneElement=r.cloneElement,t.isValidElement=r.isValidElement,t.createFactory=r.createFactory,t.Component=o.default,t.PureComponent=i.default,t.PropTypes=a.default,t.render=u.default,t.hydrate=s.default,t.findDOMNode=l.default,t.unmountComponentAtNode=f.default,t.findComponentInstance=c.default,t.setNativeProps=d.default,t.version=p.default,t.Children=h.default},function(e,t,n){var r,o=n(5),i=(r=o)&&r.__esModule?r:{default:r};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject(i.default)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t
 ,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(4),a=(r=i)&&r.__esModule?r:{default:r};function u(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=1,l=function(e){function t(){var e,n,r,o=arguments;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,a=Array(i),l=0;l<i;l++)a[l]=o[l];return n=r=u(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(a))),r.rootID=s++,u(r,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,a.default),o(t,[{key:"isRootComponent",value:function(){}},{key:"render",value:function(
 ){return this.props.children}},{key:"getPublicInstance",value:function(){return this.getRenderedComponent().getPublicInstance()}},{key:"getRenderedComponent",value:function(){return this._internal._renderedComponent}}]),t}();t.default=l,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(4),a=(r=i)&&r.__esModule?r:{default:r};var u=function(e){function t(e,n){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n))}return function
 (e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,a.default),o(t,[{key:"isPureComponentClass",value:function(){}}]),t}();t.default=u,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(e,t,n,o,i,a){return r}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}();t.default={array:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,element:r,node:r,any:r,arrayOf:r,instanceOf:r,objectOf:r,oneOf:r,oneOfType:r,shape:r},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.driver,n=e.hook,p=e.measurer,h=e.deviceWidth,v=e.viewportWidth,y=e.eventRegistry,_=e.bodyType,m=e.bodyProps;if(o.default.EmptyComponent
 =i.default,o.default.NativeComponent=a.default,o.default.TextComponent=u.default,o.default.FragmentComponent=l.default,o.default.CompositeComponent=s.default,o.default.hook=n||d.default,o.default.measurer=p,!o.default.driver){if(!t)if(r.isWeex)t=f.default;else{if(!r.isWeb)throw Error("No builtin driver matched");t=c.default}o.default.driver=t}h&&o.default.driver.setDeviceWidth&&o.default.driver.setDeviceWidth(h);v&&o.default.driver.setViewportWidth&&o.default.driver.setViewportWidth(v);y&&(o.default.driver.eventRegistry=y);_&&(o.default.driver.bodyType=_);m&&(o.default.driver.bodyProps=m)};var r=n(8),o=p(n(0)),i=p(n(23)),a=p(n(11)),u=p(n(24)),s=p(n(25)),l=p(n(29)),f=p(n(30)),c=p(n(40)),d=p(n(5));function p(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Obje
 ct.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=(r=i)&&r.__esModule?r:{default:r};var u=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._currentElement=null}return o(e,[{key:"mountComponent",value:function(e,t,n,r){this._parent=e,this._parentInstance=t,this._context=n;var o={_internal:this},i=this.getNativeNode();return r?r(i,e):a.default.driver.appendChild(i,e),o}},{key:"unmountComponent",value:function(e){this._nativeNode&&!e&&a.default.driver.removeChild(this._nativeNode,this._parent),this._nativeNode=null,this._parent=null,this._parentInstance=null,this._context=null}},{key:"updateComponent",value:function(){}},{key:"getNativeNode",value:function(){return null==this._nativeNode&&(this._nativeNode=a.default.driver.createEmpty()),this._nativeNode}}]),e}();t.default=u,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{va
 lue:!0});var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=(r=i)&&r.__esModule?r:{default:r};var u=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._currentElement=t,this._stringText=String(t)}return o(e,[{key:"mountComponent",value:function(e,t,n,r){this._parent=e,this._parentInstance=t,this._context=n,this._mountID=a.default.mountID++;var o=this.getNativeNode();r?r(o,e):a.default.driver.appendChild(o,e);var i={_internal:this};return a.default.hook.Reconciler.mountComponent(this),i}},{key:"unmountComponent",value:function(e){this._nativeNode&&!e&&a.default.driver.removeChild(this._nativeNode,this._parent),a.default.hook.Reconciler.unmountComponent(this),this._currentElement=null,this._nativeNod
 e=null,this._parent=null,this._parentInstance=null,this._context=null,this._stringText=null}},{key:"updateComponent",value:function(e,t,n){e!==t&&(this._currentElement=t,this._stringText=String(t),a.default.driver.updateText(this.getNativeNode(),this._stringText),a.default.hook.Reconciler.receiveComponent(this))}},{key:"getNativeNode",value:function(){return null==this._nativeNode&&(this._nativeNode=a.default.driver.createText(this._stringText)),this._nativeNode}}]),e}();t.default=u,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=c(n(26)),i=c(n(27)),a=c(n(0)),u=c(n(12)),s=c(n(2)),l=c(n(3)),f=c(n(28));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){try{return e()}catch(e){n?n(e):
 p(t,e)}}function p(e,t){for(var n=void 0;e;){if("function"==typeof e.componentDidCatch){n=e;break}if(!e._internal||!e._internal._parentInstance)break;e=e._internal._parentInstance}if(n)n.componentDidCatch(t);else{if(!a.default.sandbox)throw t;setTimeout(function(){throw t},0)}}var h=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._currentElement=t}return r(e,[{key:"getName",value:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null}},{key:"mountComponent",value:function(e,t,n,r){this._parent=e,this._parentInstance=t,this._context=n,this._mountID=a.default.mountID++,this._updateCount=0;var l=this._currentElement.type,f=this._currentElement.props,c=l.prototype,h=c&&l.prototype.isComponentClass,v=c&&l.prototype.render,y=this._processContext(n),_=void 0,m=void 0;if(h||v)_=new l(f,y,i.default);else{if("funct
 ion"!=typeof l)throw new Error("Invalid component type: "+l+". (keys: "+Object.keys(l)+")");_=new o.default(l)}_.props=f,_.context=y,_.refs={},_.updater=i.default,_._internal=this,this._instance=_;var b=_.state;void 0===b&&(_.state=b=null);var g=null,w=function(e){g=e};return _.componentWillMount&&d(function(){_.componentWillMount()},_,w),null==m&&(a.default.component=this,_.state=this._processPendingState(f,y),d(function(){m=_.render()},_,w),a.default.component=null),this._renderedComponent=(0,s.default)(m),this._renderedComponent.mountComponent(this._parent,_,this._processChildContext(n),r),g&&p(_,g),this._currentElement&&this._currentElement.ref&&u.default.attach(this._currentElement._owner,this._currentElement.ref,this),_.componentDidMount&&d(function(){_.componentDidMount()},_),a.default.hook.Reconciler.mountComponent(this),_}},{key:"unmountComponent",value:function(e){var t=this._instance;if(t.componentWillUnmount&&d(function(){t.componentWillUnmount()},t),a.default.hook.Recon
 ciler.unmountComponent(this),t._internal=null,null!=this._renderedComponent){var n=this._currentElement.ref;n&&u.default.detach(this._currentElement._owner,n,this),this._renderedComponent.unmountComponent(e),this._renderedComponent=null,this._instance=null}this._currentElement=null,this._parentInstance=null,this._pendingStateQueue=null,this._pendingForceUpdate=!1,this._context=null}},{key:"_processContext",value:function(e){var t=this._currentElement.type.contextTypes;if(!t)return{};var n={};for(var r in t)n[r]=e[r];return n}},{key:"_processChildContext",value:function(e){var t=this._instance,n=t.getChildContext&&t.getChildContext();return n?Object.assign({},e,n):e}},{key:"_processPendingState",value:function(e,t){var n=this._instance,r=this._pendingStateQueue;if(!r)return n.state;this._pendingStateQueue=null;for(var o=Object.assign({},n.state),i=0;i<r.length;i++){var a=r[i];Object.assign(o,"function"==typeof a?a.call(n,o,e,t):a)}return o}},{key:"updateComponent",value:function(e,t,
 n,r){var o=this._instance;o||console.error("Update component '"+this.getName()+"' that has already been unmounted (or failed to mount).");var s=!1,l=void 0,c=void 0;this._context===r?l=o.context:(l=this._processContext(r),s=!0),e===t?c=t.props:(c=t.props,s=!0);var p=s&&o.componentWillReceiveProps;p&&(this._pendingState=!0,d(function(){o.componentWillReceiveProps(c,l)},o),this._pendingState=!1),u.default.update(e,t,this);var h=!0,v=o.props,y=o.state,_=this._processPendingState(c,l);if(this._pendingForceUpdate||(o.shouldComponentUpdate?h=d(function(){return o.shouldComponentUpdate(c,_,l)},o):o.isPureComponentClass&&(h=!(0,f.default)(v,c)||!(0,f.default)(y,_))),h){this._pendingForceUpdate=!1;var m=o.context;d(function(){o.componentWillUpdate&&o.componentWillUpdate(c,_,l)},o),this._currentElement=t,this._context=r,o.props=c,o.state=_,o.context=l,this._updateRenderedComponent(r),d(function(){o.componentDidUpdate&&o.componentDidUpdate(v,y,m)},o),this._updateCount++}else this._currentEleme
 nt=t,this._context=r,o.props=c,o.state=_,o.context=l;if(p){var b=this._pendingCallbacks;this._pendingCallbacks=null,i.default.runCallbacks(b,o)}a.default.hook.Reconciler.receiveComponent(this)}},{key:"_updateRenderedComponent",value:function(e){var t=this._renderedComponent,n=t._currentElement,r=this._instance,o=void 0;if(a.default.component=this,d(function(){o=r.render()},r),a.default.component=null,(0,l.default)(n,o))t.updateComponent(n,o,t._context,this._processChildContext(e));else{var i=t.getNativeNode();t.unmountComponent(!0),this._renderedComponent=(0,s.default)(o),this._renderedComponent.mountComponent(this._parent,r,this._processChildContext(e),function(e,t){Array.isArray(e)||(e=[e]),Array.isArray(i)||(i=[i]);for(var n=void 0,r=0;r<e.length;r++){var o=e[r];i[r]?a.default.driver.replaceChild(o,i[r]):a.default.driver.insertAfter(o,n),n=o}if(e.length<i.length)for(var u=e.length;u<i.length;u++)a.default.driver.removeChild(i[u])})}}},{key:"getNativeNode",value:function(){var e=t
 his._renderedComponent;if(e)return e.getNativeNode()}},{key:"getPublicInstance",value:function(){var e=this._instance;return e instanceof o.default?null:e}}]),e}();t.default=h,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0);(r=i)&&r.__esModule;var a=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.pureRender=t}return o(e,[{key:"render",value:function(){return this.pureRender(this.props,this.context)}}]),e}();t.default=a,e.exports=t.default},function(e,t,n){function r(e,t){t&&(e._pendingCallbacks||(e._pendingCallbacks=[])).push(t)}Object.defineProperty(t,"__esModule",{value:!0});var o={setState:function(e,t,n){v
 ar o,i,a=e._internal;a&&(o=a,(i=t)&&(o._pendingStateQueue||(o._pendingStateQueue=[])).push(i),r(a,n),!a._pendingState&&a._renderedComponent&&this.runUpdate(e))},forceUpdate:function(e,t){var n=e._internal;n&&(n._pendingForceUpdate=!0,r(n,t),n._renderedComponent&&this.runUpdate(e))},runUpdate:function(e){var t=e._internal,n=t._pendingCallbacks;t._pendingCallbacks=null;var r=t._currentElement,o=t._context;(t._pendingStateQueue||t._pendingForceUpdate)&&t.updateComponent(r,r,o,o),this.runCallbacks(n,e)},runCallbacks:function(e,t){if(e)for(var n=0;n<e.length;n++)e[n].call(t)}};t.default=o,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=Object.prototype.hasOwnProperty;function i(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}t.default=function(e,t
 ){if(i(e,t))return!0;if("object"!==(void 0===e?"undefined":r(e))||null===e||"object"!==(void 0===t?"undefined":r(t))||null===t)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(var u=0;u<n.length;u++)if(!o.call(t,n[u])||!i(e[n[u]],t[n[u]]))return!1;return!0},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=l(n(0)),i=l(n(11)),a=l(n(1)),u=l(n(2)),s=l(n(13));function l(e){return e&&e.__esModule?e:{default:e}}var f=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=t
 ypeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.default),r(t,[{key:"mountComponent",value:function(e,t,n,r){this._parent=e,this._parentInstance=t,this._context=n,this._mountID=o.default.mountID++;var i={_internal:this};this._instance=i;var a=this.getNativeNode(),u=this._currentElement;if(this.mountChildren(u,n),r)r(a,e);else for(var s=Array.isArray(e),l=0;l<a.length;l++){var f=a[l];s?e.push(f):o.default.driver.appendChild(f,e)}return i}},{key:"mountChildren",value:function(e,t){var n=this,r=this._renderedChildren={},o=this.getNativeNode();return e.map(function(e,i){var a=(0,u.default)(e),l=(0,s.default)(r,e,i);return r
 [l]=a,a._mountIndex=i,a.mountComponent(n._parent,n._instance,t,function(e){if(Array.isArray(e))for(var t=0;t<e.length;t++)o.push(e[t]);else o.push(e)})})}},{key:"unmountComponent",value:function(e){if(this._nativeNode&&(a.default.remove(this._nativeNode),!e))for(var t=0;t<this._nativeNode.length;t++)o.default.driver.removeChild(this._nativeNode[t]);this.unmountChildren(!0),this._currentElement=null,this._nativeNode=null,this._parent=null,this._parentInstance=null,this._context=null,this._instance=null}},{key:"updateComponent",value:function(e,t,n,r){this._currentElement=t,this.updateChildren(this._currentElement,r)}},{key:"getNativeNode",value:function(){return null==this._nativeNode&&(this._nativeNode=[]),this._nativeNode}},{key:"getPublicInstance",value:function(){return this.getNativeNode()}},{key:"getName",value:function(){return"fragment"}}]),t}();t.default=f,e.exports=t.default},function(e,t,n){var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){retur
 n typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var i,a="function"==typeof Symbol&&"symbol"===o(Symbol.iterator)?function(e){return void 0===e?"undefined":o(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":o(e)},u=n(14),s=n(31),l=(i=s)&&i.__esModule?i:{default:i};var f=/^on[A-Z]/,c=/^aria-/,d={},p="object"===(void 0===r?"undefined":a(r))?r:"object"===(void 0===p?"undefined":a(p))?p:null,h={deviceWidth:750,viewportWidth:750,getDeviceWidth:function(){return this.deviceWidth},setDeviceWidth:function(e){this.deviceWidth=e},getViewportWidth:function(){return this.viewportWidth},setViewportWidth:function(e){this.viewportWidth=e},getElementById:function(e){return d[e]},createBody:function(){if(p.body)return p.body;var e=p.documentElement,t=p.createBody(h.bodyType,h.bodyProps);return e.a
 ppendChild(t),t},createComment:function(e){return p.createComment(e)},createEmpty:function(){return this.createComment(" empty ")},createText:function(e){return h.createElement({type:"text",props:{value:e}})},updateText:function(e,t){this.setAttribute(e,"value",t)},createElement:function(e){var t=l.default[e.type];t&&(e=t.parse(e));var n=e.props,r={},o=n.style;for(var i in o)r[i]=(0,u.convertUnit)(o[i],i);var a=p.createElement(e.type,{style:r});return this.setNativeProps(a,n,!0),a},appendChild:function(e,t){return t.appendChild(e)},removeChild:function(e,t){t=t||e.parentNode;var n=e.attr&&e.attr.id;return null!=n&&(d[n]=null),t.removeChild(e)},replaceChild:function(e,t,n){n=n||t.parentNode;var r=t.previousSibling,o=t.nextSibling;this.removeChild(t,n),r?this.insertAfter(e,r,n):o?this.insertBefore(e,o,n):this.appendChild(e,n)},insertAfter:function(e,t,n){return(n=n||t.parentNode).insertAfter(e,t)},insertBefore:function(e,t,n){return(n=n||t.parentNode).insertBefore(e,t)},addEventListen
 er:function(e,t,n,r){var o=r[t+"EventParams"];return e.addEvent(t,n,o)},removeEventListener:function(e,t,n){return e.removeEvent(t,n)},removeAllEventListeners:function(e){},removeAttribute:function(e,t,n){return"id"==t&&(d[n]=null),e.setAttr(t,void 0,!1)},setAttribute:function(e,t,n){return"id"==t&&(d[n]=e),c.test(t)&&(t=t.replace(/\-(\w)/,function(e,t){return t.toUpperCase()})),e.setAttr(t,n,!1)},setStyles:function(e,t){for(var n in t){var r=t[n];r=(0,u.convertUnit)(r,n),e.setStyle(n,r)}},beforeRender:function(){p.open(),(0,u.setRem)(this.getDeviceWidth()/this.getViewportWidth())},afterRender:function(){p.listener&&p.listener.createFinish&&p.listener.createFinish(),p.close()},setNativeProps:function(e,t,n){for(var r in t){var o=t[r];if("children"!==r&&null!=o)if("style"===r){if(n)continue;this.setStyles(e,o)}else if(f.test(r)){var i=r.slice(2).toLowerCase();this.addEventListener(e,i,o,t)}else this.setAttribute(e,r,o)}}};t.default=h,e.exports=t.default},function(e,t,n){Object.define
 Property(t,"__esModule",{value:!0});var r=c(n(32)),o=c(n(33)),i=c(n(34)),a=c(n(35)),u=c(n(36)),s=c(n(37)),l=c(n(38)),f=c(n(39));function c(e){return e&&e.__esModule?e:{default:e}}t.default={span:a.default,p:u.default,img:r.default,button:s.default,video:o.default,textarea:i.default,h1:l.default,h2:l.default,h3:l.default,h4:l.default,h5:l.default,h6:l.default,nav:f.default,article:f.default,section:f.default,footer:f.default,aside:f.default,main:f.default},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(15);t.default={parse:function(e){var t=e.props;return e.type="image",e.props=(0,r.transformPropsAttrsToStyle)(t,["width","height"]),e}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(15);t.default={parse:function(e){var t=e.props;return e.props=(0,r.transformPropsAttrsToStyle)(t,["width","height"]),e}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.defa
 ult={parse:function(e){var t=e.props;return"string"!=typeof t.children||t.value||(t.value=t.children,t.children=null),e}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default={parse:function(e){var t=e.props;return e.type="text","string"!=typeof t.children||t.value||(t.value=t.children,t.children=null),e}},e.exports=t.default},function(e,t,n){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"===r(Symbol.iterator)?function(e){return void 0===e?"undefined":r(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":r(e)},i=Object.assign||function(e){for(var t=arguments,n=1;n<arguments.length;n++){var r=t[n];for(var o in r)Object
 .prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},a={fontSize:28,marginTop:28,marginBottom:28},u={u:{textDecoration:"underline"},s:{textDecoration:"line-through"},i:{fontStyle:"italic"},b:{fontWeight:"bold"},del:{textDecoration:"line-through"},em:{fontStyle:"italic"},strong:{fontWeight:"bold"},big:{fontSize:33.6},small:{fontSize:28*.8}};function s(e){var t=e.type,n=e.props,r=n.style,o=n.children;"img"===t&&(t="image"),u[t]&&(r=i({},u[t],r),t="span"),n.style=null,n.children=null;var a={type:t,style:r,attr:n||{}};return o&&("span"===t&&"string"==typeof o?a.attr.value=o:a.children=l(o)),a}function l(e){var t=[];Array.isArray(e)||(e=[e]);for(var n=0;n<e.length;n++){var r=e[n];"string"==typeof r?t.push({type:"span",attr:{value:r}}):"object"===(void 0===r?"undefined":o(r))&&t.push(s(r))}return t}t.default={parse:function(e){var t=e.props,n=t.children;return e.type="richtext",t.style=i({},a,t.style),t.value=l(n),t.children=null,e}},e.exports=t.default},function(e,t,n){Object.defin
 eProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=arguments,n=1;n<arguments.length;n++){var r=t[n];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e};t.default={parse:function(e){var t=e.props;e.type="text";var n=t.style,o=t.disabled,i=t.children,a=r({textAlign:"center",fontSize:22,paddingTop:4,paddingRight:12,paddingBottom:6,paddingLeft:12,borderWidth:4,borderStyle:"solid",borderColor:"#000000",backgroudColor:"#c0c0c0"},n);return o&&(t.onClick=null,a=r({},a,{color:"#7f7f7f",borderColor:"#7f7f7f"})),"string"==typeof i&&(t.value=i,t.children=null),e}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=arguments,n=1;n<arguments.length;n++){var r=t[n];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e};function o(e,t,n){return{fontSize:e*t,marginTop:e*t*n,marginBottom:e*t*n,fontWeight:"bold"}}var i={h1:o(28,2,.67),h2:o(28,1
 .5,.83),h3:o(28,1.17,1),h4:o(28,1,1.33),h5:o(28,.83,1.67),h6:o(28,.67,2.33)};t.default={parse:function(e){var t=e.type,n=e.props;return e.type="text",n.style=r({},i[t]||i.h6,n.style),"string"!=typeof n.children||n.value||(n.value=n.children,n.children=null),e}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default={parse:function(e){return e.type="div",e}},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(14),a=n(41),u=(r=a)&&r.__esModule?r:{default:r};var s="dangerouslySetInnerHTML",l="className",f=/on[A-Z]/,c={deviceWidth:"undefined"!=typeof DEVICE_WIDTH&&DEVICE_WIDTH||null,viewportWidth:"undefined"!=typeof VIEWPORT_WIDTH&&VIEWPORT_WIDTH||750,eventRegistry:{},getDeviceWidth:function(){return this.deviceWidth||o.documentElement.clientWidth},setDeviceWidth:function(e){this.deviceWidth=e},getViewportWidth:function(){return this.viewportWidth},setViewportWidth:function(e){this.viewportWidth=e},getE
 lementById:function(e){return o.getElementById(e)},createBody:function(){return o.body},createComment:function(e){return o.createComment(e)},createEmpty:function(){return this.createComment(" empty ")},createText:function(e){return o.createTextNode(e)},updateText:function(e,t){e["textContent"in o?"textContent":"nodeValue"]=t},createElement:function(e){var t=o.createElement(e.type),n=e.props;return this.setNativeProps(t,n),t},appendChild:function(e,t){return t.appendChild(e)},removeChild:function(e,t){(t=t||e.parentNode)&&t.removeChild(e)},replaceChild:function(e,t,n){(n=n||t.parentNode).replaceChild(e,t)},insertAfter:function(e,t,n){n=n||t.parentNode;var r=t.nextSibling;r?n.insertBefore(e,r):n.appendChild(e)},insertBefore:function(e,t,n){(n=n||t.parentNode).insertBefore(e,t)},addEventListener:function(e,t,n,r){return this.eventRegistry[t]?this.eventRegistry[t]("addEvent",e,t,n,r):e.addEventListener(t,n)},removeEventListener:function(e,t,n,r){return this.eventRegistry[t]?this.eventRe
 gistry[t]("removeEvent",e,t,n,r):e.removeEventListener(t,n)},removeAllEventListeners:function(e){},removeAttribute:function(e,t){if(t===s)return e.innerHTML=null;if(t===l&&(t="class"),t in e)try{e[t]=null}catch(e){}e.removeAttribute(t)},setAttribute:function(e,t,n){if(t===s)return e.innerHTML=n.__html;if(t===l&&(t="class"),t in e)try{e[t]=n}catch(r){e.setAttribute(t,n)}else e.setAttribute(t,n)},setStyles:function(e,t){var n={};for(var r in t){var o=t[r];u.default.isFlexProp(r)?u.default[r](o,n):n[r]=(0,i.convertUnit)(o,r)}for(var a in n){var s=n[a];if(Array.isArray(s))for(var l=0;l<s.length;l++)e.style[a]=s[l];else e.style[a]=s}},beforeRender:function(){(0,i.setRem)(this.getDeviceWidth()/this.getViewportWidth())},setNativeProps:function(e,t){for(var n in t){var r=t[n];if("children"!==n&&null!=r)if("style"===n)this.setStyles(e,r);else if(f.test(n)){var o=n.slice(2).toLowerCase();this.addEventListener(e,o,r)}else this.setAttribute(e,n,r)}}};t.default=c,e.exports=t.default},function(e,
 t,n){Object.defineProperty(t,"__esModule",{value:!0});var r={stretch:"stretch","flex-start":"start","flex-end":"end",center:"center"},o={row:"horizontal",column:"vertical"},i={"flex-start":"start","flex-end":"end",center:"center","space-between":"justify","space-around":"justify"},a={display:!0,flex:!0,alignItems:!0,alignSelf:!0,flexDirection:!0,justifyContent:!0,flexWrap:!0},u={isFlexProp:function(e){return a[e]},display:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.display="flex"===e?["-webkit-box","-webkit-flex","flex"]:e,t},flex:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.webkitBoxFlex=e,t.webkitFlex=e,t.flex=e,t},flexWrap:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.webkitFlexWrap=e,t.flexWrap=e,t},alignItems:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.webkitBoxAlign=r[e],t.webkitAlignItems=e,t.alignItems=e,t},alignSelf
 :function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.webkitAlignSelf=e,t.alignSelf=e,t},flexDirection:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.webkitBoxOrient=o[e],t.webkitFlexDirection=e,t.flexDirection=e,t},justifyContent:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.webkitBoxPack=i[e],t.webkitJustifyContent=e,t.justifyContent=e,t}};t.default=u,e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(10),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n,r){if(t.childNodes)for(var o=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(t.childNodes)),a=0;a<o.length;a++){var u=o[a];t.removeChild(u)}return(0,i.default)(e,t,n,r)},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(1),i=(r=o)&&r.__esModule
 ?r:{default:r};t.default=function(e){return null==e?null:i.default.get(e)},e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){e=(0,o.default)(e),r.default.driver.setNativeProps(e,t)};var r=i(n(0)),o=i(n(16));function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default="0.4.20",e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(7),i=(r=o)&&r.__esModule?r:{default:r};function a(e){return e=(0,i.default)(e,[]),Array.isArray(e)?e:[].concat(e)}var u={map:function(e,t,n){return null==e?null:(e=a(e)).map(function(e,r){return t.call(n,e,r)})},forEach:function(e,t,n){if(null==e)return null;(e=a(e)).forEach(function(e,r){return t.call(n,e,r)})},count:function(e){return null==e?0:a(e).length},only:function(e){if(1!==(e=u.toArray(e)).length)throw new Error("Children.only: expected to receive a single element
  child.");return e[0]},toArray:function(e){return null==e?[]:a(e).filter(function(e){return null!==e})}};t.default=u,e.exports=t.default}])}},function(e,t){e.exports=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){var r,o,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=Object.defineProperties,u=Object.defineProperty,s=Object.create(null);function l(e){if(!(t=e)||!("symbol"===(void 0=
 ==t?"undefined":i(t))||t.constructor&&"Symbol"===t.constructor.name&&"Symbol"===t[t.constructor.toStringTag]))throw new TypeError(e+" is not a symbol");var t;return e}var f,c=(f=Object.create(null),function(e){for(var t=0;f[e+(t||"")];)++t;return f[e+=t||""]=!0,"@@"+e});o=function(e){if(this instanceof o)throw new TypeError("Symbol is not a constructor");return r(e)},e.exports=r=function e(t){var n;if(this instanceof e)throw new TypeError("Symbol is not a constructor");return n=Object.create(o.prototype),t=void 0===t?"":String(t),a(n,{__description__:{value:t},__name__:{value:c(t)}})},a(r,{for:{value:function(e){return s[e]?s[e]:s[e]=r(String(e))}},keyFor:{value:function(e){var t;for(t in l(e),s)if(s[t]===e)return t}},hasInstance:{value:r("hasInstance")},isConcatSpreadable:{value:r("isConcatSpreadable")},iterator:{value:r("iterator")},match:{value:r("match")},replace:{value:r("replace")},search:{value:r("search")},species:{value:r("species")},split:{value:r("split")},toPrimitive:{va
 lue:r("toPrimitive")},toStringTag:{value:r("toStringTag")},unscopables:{value:r("unscopables")}}),a(o.prototype,{constructor:{value:r},toString:{value:function(){return this.__name__}}}),a(r.prototype,{toString:{value:function(){return"Symbol ("+l(this).__description__+")"}},valueOf:{value:function(){return l(this)}}}),u(r.prototype,r.toPrimitive,{value:function(){var e=l(this);return"symbol"===(void 0===e?"undefined":i(e))?e:e.toString()}}),u(r.prototype,r.toStringTag,{value:"Symbol"}),u(o.prototype,r.toStringTag,{value:r.prototype[r.toStringTag]}),u(o.prototype,r.toPrimitive,{value:r.prototype[r.toPrimitive]})},function(e,t,n){var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=(r=i)&&r.__esModule?r:{default:r};var u=/[!'\(\)~]|%20|%00/g,s=/\+/g,l={"!":"%21","'":"%27","(":"%28
 ",")":"%29","~":"%7E","%20":"+","%00":"\0"},f=function(e){return l[e]},c="__URLSearchParams__";function d(e){return encodeURIComponent(e).replace(u,f)}function p(e){return decodeURIComponent(e.replace(s," "))}var h=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this[c]=Object.create(null),t){"?"===t.charAt(0)&&(t=t.slice(1));for(var n,r,o=(t||"").split("&"),i=0,a=o.length;i<a;i++)-1<(n=(r=o[i]).indexOf("="))?this.append(p(r.slice(0,n)),p(r.slice(n+1))):r.length&&this.append(p(r),"")}}return o(e,[{key:"append",value:function(e,t){var n=this[c];e in n?n[e].push(""+t):n[e]=[""+t]}},{key:"delete",value:function(e){delete this[c][e]}},{key:"get",value:function(e){var t=this[c];return e in t?t[e][0]:null}},{key:"getAll",value:function(e){var t=this[c];return e in t?t[e].slice(0):[]}},{key:"has",value:function(e){return e in this[c]}},{key:"set",value:function(e,t){this[c][e]=[""+t]}},{key:"forEach",value:fun
 ction(e,t){var n=this[c];Object.getOwnPropertyNames(n).forEach(function(r){n[r].forEach(function(n){e.call(t,n,r,this)},this)},this)}},{key:"keys",value:function(){var e=[];this.forEach(function(t,n){e.push(n)});var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t[a.default.iterator]=function(){return t},t}},{key:"values",value:function(){var e=[];this.forEach(function(t){e.push(t)});var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t[a.default.iterator]=function(){return t},t}},{key:"entries",value:function(){var e=[];this.forEach(function(t,n){e.push([n,t])});var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t[a.default.iterator]=function(){return t},t}},{key:"toString",value:function(){var e,t,n,r,o=this[c],i=[];for(t in o)for(n=d(t),e=0,r=o[t];e<r.length;e++)i.push(n+"="+d(r[e]));return i.join("&")}}]),e}();h.prototype[a.default.iterator]=h.prototype.entries,e.exports=h},function(e,t,n){e.ex
 ports={get Promise(){return n(3)},get Symbol(){return n(0)},get Map(){return n(4)},get Set(){return n(5)},get WeakMap(){return n(6)},get WeakSet(){return n(7)},get FontFace(){return n(8)},get URL(){return n(9)},get URLSearchParams(){return n(1)},get matchMedia(){return n(10)}}},function(e,t,n){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function o(){}var i="function"==typeof setImmediate&&setImmediate||function(e){"function"==typeof setTimeout?setTimeout(e,0):e()},a=function(e){"undefined"!=typeof console&&console&&console.log("Possible Unhandled Promise Rejection:",e)};function u(e){if("object"!==r(this))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("Promise resolver is not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],d(e,this)
 }function s(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,i(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(e){return void f(t.promise,e)}l(t.promise,r)}else(1===e._state?l:f)(t.promise,e._value)})):e._deferreds.push(t)}function l(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":r(t))||"function"==typeof t)){var n=t.then;if(t instanceof u)return e._state=3,e._value=t,void c(e);if("function"==typeof n)return void d((o=n,i=t,function(){o.apply(i,arguments)}),e)}e._state=1,e._value=t,c(e)}catch(t){f(e,t)}var o,i}function f(e,t){e._state=2,e._value=t,c(e)}function c(e){2===e._state&&0===e._deferreds.length&&i(function(){e._handled||a(e._value)});for(var t=0,n=e._deferreds.length;t<n;t++)s(e,e._deferreds[t]);e._deferreds=null}function d(e,t){var n=!1;try{e(function(e){n||(n=!0,l(t,e))},function(e){n||(n=!0,f(t,e))})}catch(e){if(n)return;n=!0,f(t
 ,e)}}u.prototype.catch=function(e){return this.then(null,e)},u.prototype.then=function(e,t){var n=new this.constructor(o);return s(this,new function(e,t,n){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=n}(e,t,n)),n},u.all=function(e){var t=Array.prototype.slice.call(e);return new u(function(e,n){if(0===t.length)return e([]);var o=t.length;function i(a,u){try{if(u&&("object"===(void 0===u?"undefined":r(u))||"function"==typeof u)){var s=u.then;if("function"==typeof s)return void s.call(u,function(e){i(a,e)},n)}t[a]=u,0==--o&&e(t)}catch(e){n(e)}}for(var a=0;a<t.length;a++)i(a,t[a])})},u.resolve=function(e){return e&&"object"===(void 0===e?"undefined":r(e))&&e.constructor===u?e:new u(function(t){t(e)})},u.reject=function(e){return new u(function(t,n){n(e)})},u.race=function(e){return new u(function(t,n){for(var r=0,o=e.length;r<o;r++)e[r].then(t,n)})},u._setImmediateFn=function(e){i=e},u._setUnhandledRejectionFn=function(e){a=e},e.
 exports=u},function(e,t,n){var r,o=n(0),i=(r=o)&&r.__esModule?r:{default:r};var a=(0,i.default)("undef"),u=(0,i.default)("NaN"),s=!0;function l(e){return e!=e?u:e}function f(e){return e===u?NaN:e}function c(e,t){var n=0,r=!1;return{next:function(){if(n===e._keys.length&&(r=!0),r)return{value:void 0,done:!0};for(;e._keys[n]===a;)n++;return{value:t.call(e,n++),done:!1}}}}function d(e){for(var t=0,n=0,r=e._keys.length;n<r;n++)e._keys[n]!==a&&t++;return t}function p(e,t){return"function"==typeof e[t]}var h=function e(t){this._keys=[],this._values=[],t&&p(t,"forEach")&&(t instanceof e||p(t,"clear")&&p(t,"delete")&&p(t,"entries")&&p(t,"forEach")&&p(t,"get")&&p(t,"has")&&p(t,"keys")&&p(t,"set")&&p(t,"values")?t.forEach(function(e,t){this.set.apply(this,[t,e])},this):t.forEach(function(e){this.set.apply(this,e)},this)),s||(this.size=d(this))};h.prototype={};try{Object.defineProperty(h.prototype,"size",{get:function(){return d(this)}})}catch(e){s=!1}h.prototype.get=function(e){var t=this._ke
 ys.indexOf(l(e));return-1!==t?this._values[t]:void 0},h.prototype.set=function(e,t){var n=this._keys.indexOf(l(e));return-1!==n?this._values[n]=t:(this._keys.push(l(e)),this._values.push(t),s||(this.size=d(this))),this},h.prototype.has=function(e){return-1!==this._keys.indexOf(l(e))},h.prototype.delete=function(e){var t=this._keys.indexOf(l(e));return-1!==t&&(this._keys[t]=a,this._values[t]=a,s||(this.size=d(this)),!0)},h.prototype.clear=function(){this._keys=this._values=[],s||(this.size=0)},h.prototype.values=function(){return c(this,function(e){return this._values[e]})},h.prototype.keys=function(){return c(this,function(e){return f(this._keys[e])})},h.prototype.entries=h.prototype[i.default.iterator]=function(){return c(this,function(e){return[f(this._keys[e]),this._values[e]]})},h.prototype.forEach=function(e,t){t=t||global;for(var n=this.entries(),r=n.next();!1===r.done;)e.call(t,r.value[1],r.value[0],this),r=n.next()},h.prototype[i.default.species]=h,Object.defineProperty(h,"c
 onstructor",{value:h});try{Object.defineProperty(h,"length",{value:0})}catch(e){}e.exports=h},function(e,t,n){var r,o=n(0),i=(r=o)&&r.__esModule?r:{default:r};var a=(0,i.default)("undef"),u=(0,i.default)("NaN"),s=!0;function l(e){return e!=e?u:e}function f(e){return e===u?NaN:e}function c(e,t){var n=0;return{next:function(){for(;e._values[n]===a;)n++;return n===e._values.length?{value:void 0,done:!0}:{value:t.call(e,n++),done:!1}}}}function d(e){for(var t=0,n=0,r=e._values.length;n<r;n++)e._values[n]!==a&&t++;return t}var p=function(e){this._values=[],e&&"function"==typeof e.forEach&&e.forEach(function(e){this.add.call(this,e)},this),s||(this.size=d(this))};try{Object.defineProperty(p.prototype,"size",{get:function(){return d(this)}})}catch(e){s=!1}p.prototype.add=function(e){return e=l(e),-1===this._values.indexOf(e)&&(this._values.push(e),s||(this.size=d(this))),this},p.prototype.has=function(e){return-1!==this._values.indexOf(l(e))},p.prototype.delete=function(e){var t=this._valu
 es.indexOf(l(e));return-1!==t&&(this._values[t]=a,s||(this.size=d(this)),!0)},p.prototype.clear=function(){this._values=[],s||(this.size=0)},p.prototype.values=p.prototype.keys=function(){return c(this,function(e){return f(this._values[e])})},p.prototype.entries=p.prototype[i.default.iterator]=function(){return c(this,function(e){return[f(this._values[e]),f(this._values[e])]})},p.prototype.forEach=function(e,t){t=t||global;for(var n=this.entries(),r=n.next();!1===r.done;)e.call(t,r.value[1],r.value[0],this),r=n.next()},p.prototype[i.default.species]=p,Object.defineProperty(p,"constructor",{value:p});try{Object.defineProperty(p,"length",{value:0})}catch(e){}e.exports=p},function(e,t,n){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=Object.defineProperty,i=Date.now()%1e9,a=function(e){this.name="__st"+(1e9*Math.random()>>>0)
 +i+++"__",e&&e.forEach&&e.forEach(function(e){this.set.apply(this,e)},this)};a.prototype.set=function(e,t){if("object"!==(void 0===e?"undefined":r(e))&&"function"!=typeof e)throw new TypeError("Invalid value used as weak map key");var n=e[this.name];return n&&n[0]===e?n[1]=t:o(e,this.name,{value:[e,t],writable:!0}),this},a.prototype.get=function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:void 0},a.prototype.delete=function(e){var t=e[this.name];return!(!t||t[0]!==e)&&(t[0]=t[1]=void 0,!0)},a.prototype.has=function(e){var t=e[this.name];return!!t&&t[0]===e},e.exports=a},function(e,t,n){var r=Date.now()%1e9,o=function(e){this.name="__st"+(1e9*Math.random()>>>0)+r+++"__",e&&e.forEach&&e.forEach(this.add,this)};o.prototype.add=function(e){var t=this.name;return e[t]||Object.defineProperty(e,t,{value:!0,writable:!0}),this},o.prototype.delete=function(e){return!!e[this.name]&&(e[this.name]=void 0,!0)},o.prototype.has=function(e){return!!e[this.name]},e.exports=o},function(e,t,n){e.exp
 orts=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.family=t,this.source=n}},function(e,t,n){var r=n(1),o=Object.create(null);o.ftp=21,o.file=0,o.gopher=70,o.http=80,o.https=443,o.ws=80,o.wss=443;var i=Object.create(null);function a(e){return void 0!==o[e]}function u(){h.call(this),this._isInvalid=!0}function s(e){return""==e&&u.call(this),e.toLowerCase()}function l(e){var t=e.charCodeAt(0);return t>32&&t<127&&-1==[34,35,60,62,63,96].indexOf(t)?e:encodeURIComponent(e)}i["%2e"]=".",i[".%2e"]="..",i["%2e."]="..",i["%2e%2e"]="..";var f=void 0,c=/[a-zA-Z]/,d=/[a-zA-Z0-9\+\-\.]/;function p(e,t,n){var r=this;function p(e){w.push(e)}var h,v,y=t||"scheme start",_=0,m="",b=!1,g=!1,w=[];e:for(;(e[_-1]!=f||0==_)&&!this._isInvalid;){var x=e[_];switch(y){case"scheme start":if(!x||!c.test(x)){if(t){p("Invalid scheme.");break e}m="",y="no scheme";continue}m+=x.toLowerCase(),y="scheme";break;case"scheme":if(x&&d.test(x))m+=
 x.toLowerCase();else{if(":"!=x){if(t){if(f==x)break e;p("Code point not allowed in scheme: "+x);break e}m="",_=0,y="no scheme";continue}if(r._scheme=m,m="",t)break e;a(r._scheme)&&(r._isRelative=!0),y="file"==r._scheme?"relative":r._isRelative&&n&&n._scheme==r._scheme?"relative or authority":r._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==x?y="query":"#"==x?(r._fragment="#",y="fragment"):f!=x&&"\t"!=x&&"\n"!=x&&"\r"!=x&&(r._schemeData+=l(x));break;case"no scheme":if(n&&a(n._scheme)){y="relative";continue}p("Missing scheme."),u.call(r);break;case"relative or authority":if("/"!=x||"/"!=e[_+1]){p("Expected /, got: "+x),y="relative";continue}y="authority ignore slashes";break;case"relative":if(r._isRelative=!0,"file"!=r._scheme&&(r._scheme=n._scheme),f==x){r._host=n._host,r._port=n._port,r._path=n._path.slice(),r._query=n._query,r._username=n._username,r._password=n._password;break e}if("/"==x||"\\"==x)"\\"==x&&p("\\ is an invalid code point."),y="relati
 ve slash";else if("?"==x)r._host=n._host,r._port=n._port,r._path=n._path.slice(),r._query="?",r._username=n._username,r._password=n._password,y="query";else{if("#"!=x){var E=e[_+1],C=e[_+2];("file"!=r._scheme||!c.test(x)||":"!=E&&"|"!=E||f!=C&&"/"!=C&&"\\"!=C&&"?"!=C&&"#"!=C)&&(r._host=n._host,r._port=n._port,r._username=n._username,r._password=n._password,r._path=n._path.slice(),r._path.pop()),y="relative path";continue}r._host=n._host,r._port=n._port,r._path=n._path.slice(),r._query=n._query,r._fragment="#",r._username=n._username,r._password=n._password,y="fragment"}break;case"relative slash":if("/"!=x&&"\\"!=x){"file"!=r._scheme&&(r._host=n._host,r._port=n._port,r._username=n._username,r._password=n._password),y="relative path";continue}"\\"==x&&p("\\ is an invalid code point."),y="file"==r._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=x){p("Expected '/', got: "+x),y="authority ignore slashes";continue}y="authority second slash";break;c
 ase"authority second slash":if(y="authority ignore slashes","/"!=x){p("Expected '/', got: "+x);continue}break;case"authority ignore slashes":if("/"!=x&&"\\"!=x){y="authority";continue}p("Expected authority, got: "+x);break;case"authority":if("@"==x){b&&(p("@ already seen."),m+="%40"),b=!0;for(var S=0;S<m.length;S++){var O=m[S];if("\t"!=O&&"\n"!=O&&"\r"!=O)if(":"!=O||null!==r._password){var k=l(O);null!==r._password?r._password+=k:r._username+=k}else r._password="";else p("Invalid whitespace in authority.")}m=""}else{if(f==x||"/"==x||"\\"==x||"?"==x||"#"==x){_-=m.length,m="",y="host";continue}m+=x}break;case"file host":if(f==x||"/"==x||"\\"==x||"?"==x||"#"==x){2!=m.length||!c.test(m[0])||":"!=m[1]&&"|"!=m[1]?0==m.length?y="relative path start":(r._host=s.call(r,m),m="",y="relative path start"):y="relative path";continue}"\t"==x||"\n"==x||"\r"==x?p("Invalid whitespace in file host."):m+=x;break;case"host":case"hostname":if(":"!=x||g){if(f==x||"/"==x||"\\"==x||"?"==x||"#"==x){if(r._hos
 t=s.call(r,m),m="",y="relative path start",t)break e;continue}"\t"!=x&&"\n"!=x&&"\r"!=x?("["==x?g=!0:"]"==x&&(g=!1),m+=x):p("Invalid code point in host/hostname: "+x)}else if(r._host=s.call(r,m),m="",y="port","hostname"==t)break e;break;case"port":if(/[0-9]/.test(x))m+=x;else{if(f==x||"/"==x||"\\"==x||"?"==x||"#"==x||t){if(""!=m){var P=parseInt(m,10);P!=o[r._scheme]&&(r._port=P+""),m=""}if(t)break e;y="relative path start";continue}"\t"==x||"\n"==x||"\r"==x?p("Invalid code point in port: "+x):u.call(r)}break;case"relative path start":if("\\"==x&&p("'\\' not allowed in path."),y="relative path","/"!=x&&"\\"!=x)continue;break;case"relative path":var j;if(f!=x&&"/"!=x&&"\\"!=x&&(t||"?"!=x&&"#"!=x))"\t"!=x&&"\n"!=x&&"\r"!=x&&(m+=l(x));else"\\"==x&&p("\\ not allowed in relative path."),(j=i[m.toLowerCase()])&&(m=j),".."==m?(r._path.pop(),"/"!=x&&"\\"!=x&&r._path.push("")):"."==m&&"/"!=x&&"\\"!=x?r._path.push(""):"."!=m&&("file"==r._scheme&&0==r._path.length&&2==m.length&&c.test(m[0])&&"|
 "==m[1]&&(m=m[0]+":"),r._path.push(m)),m="","?"==x?(r._query="?",y="query"):"#"==x&&(r._fragment="#",y="fragment");break;case"query":t||"#"!=x?f!=x&&"\t"!=x&&"\n"!=x&&"\r"!=x&&(r._query+=(void 0,(v=(h=x).charCodeAt(0))>32&&v<127&&-1==[34,35,60,62,96].indexOf(v)?h:encodeURIComponent(h))):(r._fragment="#",y="fragment");break;case"fragment":f!=x&&"\t"!=x&&"\n"!=x&&"\r"!=x&&(r._fragment+=x)}_++}}function h(){this._scheme="",this._schemeData="",this._username="",this._password=null,this._host="",this._port="",this._path=[],this._query="",this._fragment="",this._isInvalid=!1,this._isRelative=!1}function v(e,t){void 0===t||t instanceof v||(t=new v(String(t))),this._url=e,h.call(this);var n=e.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g,"");p.call(this,n,null,t)}v.prototype={toString:function(){return this.href},get href(){if(this._isInvalid)return this._url;var e="";return""==this._username&&null==this._password||(e=this._username+(null!=this._password?":"+this._password:"")+"@"),this.protocol+(
 this._isRelative?"//"+e+this.host:"")+this.pathname+this._query+this._fragment},set href(e){h.call(this),p.call(this,e)},get protocol(){return this._scheme+":"},set protocol(e){this._isInvalid||p.call(this,e+":","scheme start")},get host(){return this._isInvalid?"":this._port?this._host+":"+this._port:this._host},set host(e){!this._isInvalid&&this._isRelative&&p.call(this,e,"host")},get hostname(){return this._host},set hostname(e){!this._isInvalid&&this._isRelative&&p.call(this,e,"hostname")},get port(){return this._port},set port(e){!this._isInvalid&&this._isRelative&&p.call(this,e,"port")},get pathname(){return this._isInvalid?"":this._isRelative?"/"+this._path.join("/"):this._schemeData},set pathname(e){!this._isInvalid&&this._isRelative&&(this._path=[],p.call(this,e,"relative path start"))},get search(){return this._isInvalid||!this._query||"?"==this._query?"":this._query},set search(e){!this._isInvalid&&this._isRelative&&(this._query="?","?"==e[0]&&(e=e.slice(1)),p.call(this,e
 ,"query"))},get searchParams(){return new r(this.search)},get hash(){return this._isInvalid||!this._fragment||"#"==this._fragment?"":this._fragment},set hash(e){this._isInvalid||(this._fragment="#","#"==e[0]&&(e=e.slice(1)),p.call(this,e,"fragment"))},get origin(){var e;if(this._isInvalid||!this._scheme)return"";switch(this._scheme){case"data":case"file":case"javascript":case"mailto":return"null"}return(e=this.host)?this._scheme+"://"+e:""}},e.exports=v},function(e,t,n){var r=/^(?:(only|not)?\s*([_a-z][_a-z0-9-]*)|(\([^\)]+\)))(?:\s*and\s*(.*))?$/i,o=/^\(\s*([_a-z-][_a-z0-9-]*)\s*(?:\:\s*([^\)]+))?\s*\)$/,i=/^(?:(min|max)-)?(.+)/;function a(e,t){return(n=e,n.split(",").map(function(e){var t=(e=e.trim()).match(r);if(!t)throw new SyntaxError('Invalid CSS media query: "'+e+'"');var n=t[1],a=t[2],u=((t[3]||"")+(t[4]||"")).trim(),s={};if(s.inverse=!!n&&"not"===n.toLowerCase(),s.type=a?a.toLowerCase():"all",!u)return s.expressions=[],s;if(!(u=u.match(/\([^\)]+\)/g)))throw new SyntaxError(
 'Invalid CSS media query: "'+e+'"');return s.expressions=u.map(function(t){var n=t.match(o);if(!n)throw new SyntaxError('Invalid CSS media query: "'+e+'"');var r=n[1].toLowerCase().match(i);return{modifier:r[1],feature:r[2],value:n[2]}}),s})).some(function(e){var n=e.inverse,r="all"===e.type||t.type===e.type;if(r&&n||!r&&!n)return!1;var o=e.expressions.every(function(e){var n=e.feature,r=e.modifier,o=e.value,i=t[n];if(!i)return!1;switch(n){case"width":case"height":o=parseFloat(o),i=parseFloat(i)}switch(r){case"min":return i>=o;case"max":return i<=o;default:return i===o}});return o&&!n||!o&&n});var n}e.exports=function(e){var t={matches:!1,media:e};return""===e?(t.matches=!0,t):(t.matches=a(e,{type:"screen",width:window.screen.width,height:window.screen.height}),t)}}])}},function(e,t,n){e.exports=function(e){return function(t,n,r){n instanceof Function&&(r=n,n=[]),e[t]={factory:r,deps:n,module:{exports:{}},isInitialized:!1,hasError:!1}}}},function(e,t,n){var r="@weex-module/";e.expor
 ts=function(e,t){return function n(o){var i=e[o];if(o.split(r).length>1){var a=o.split(r)[1];if(t.isRegisteredModule(a))return t.requireModule(a);throw new Error('Requiring unknown weex module "'+o+'"')}if(i&&i.isInitialized)return i.module.exports;if(!i)throw new Error('Requiring unknown module "'+o+'"');if(i.hasError)throw new Error('Requiring module "'+o+'" which threw an exception');try{i.isInitialized=!0,i.factory(n,i.module.exports,i.module)}catch(e){throw i.hasError=!0,i.isInitialized=!1,e}return i.module.exports}}},function(e,t,n){var r,o=n(10),i=(r=o)&&r.__esModule?r:{default:r};function a(e){if("*"==e)return e;for(var t=(e="string"==typeof e?e:"").split("."),n=0,r=[];n<3;){var o="string"==typeof t[n]&&t[n]?t[n]:"0";r.push(o),n++}return r.join(".")}function u(e,t,n){var r={isDowngrade:!0,errorType:1,code:1e3},o=e.toLowerCase();return o.indexOf("osversion")>=0?r.code=1001:o.indexOf("appversion")>=0?r.code=1002:o.indexOf("weexversion")>=0?r.code=1003:o.indexOf("devicemodel")>
 =0&&(r.code=1004),r.errorMessage="Downgrade["+e+"] :: deviceInfo "+t+" matched criteria "+n,r}e.exports=function(e){return function(t){var n=e("@weex-module/instanceWrap"),r=function(e){var t={isDowngrade:!1},n=WXEnvironment,r=e[(n.platform||"unknow").toLowerCase()]||{};for(var o in n){var s=o,l=s.toLowerCase(),f=n[o],c=l.indexOf("version")>=0,d=l.indexOf("devicemodel")>=0,p=r[o];if(p&&c){var h=a(p),v=a(n[o]);if(i.default.satisfies(v,h)){t=u(s,f,p);break}}else if(d&&(Array.isArray(p)?p:[p]).indexOf(f)>=0){t=u(s,f,p);break}}return t}(t);return!!r.isDowngrade&&(n.error(r.errorType,r.code,r.errorMessage),!0)}}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default={satisfies:function(e,t){if((void 0===e?"undefined":r(e))+(void 0===t?"undefined":r(t))!="stringst
 ring")return!1;if("*"==t)return!0;for(var n=t.match(/(\W+)?([\d|.]+)/),o=e.split("."),i=n[2].split("."),a=Math.max(o.length,i.length),u=0,s=0;s<a;s++){if(o[s]&&!i[s]&&parseInt(o[s])>0||parseInt(o[s])>parseInt(i[s])){u=1;break}if(i[s]&&!o[s]&&parseInt(i[s])>0||parseInt(o[s])<parseInt(i[s])){u=-1;break}}switch(n[1]){case"<":if(-1===u)return!0;break;case"<=":if(1!==u)return!0;break;case">":if(1===u)return!0;break;case">=":if(-1!==u)return!0;break;default:if(0===u)return!0}return!1}},e.exports=t.default},function(e,t,n){var r,o=n(1),i=(r=o)&&r.__esModule?r:{default:r};var a="visible",u="hidden",s="visibilitychange";function l(e){e.body.addEvent("viewappear",function(t){e.visibilityState=a,t.type=s,e.dispatchEvent(t)}),e.body.addEvent("viewdisappear",function(t){e.visibilityState=u,t.type=s,e.dispatchEvent(t)})}e.exports=function(e,t){var n=new i.default,r=!1;try{t.addEventListener=function(e,o){e===s&&(t.body?l(t):r=!0),n.on(e,o)},t.removeEventListener=function(e,r){var o;e===s&&(o=t).b
 ody&&(o.body.removeEvent("viewappear"),o.body.removeEvent("viewdisappear")),n.off(e,r)},t.dispatchEvent=function(e){n.emit(e.type,e)},t.fonts={add:function(t){e("@weex-module/dom").addRule("fontFace",{fontFamily:t.family,src:t.source})}},t.visibilityState=a;var o=t.createBody;Object.defineProperty(t,"createBody",{value:function(){var e=o.apply(t,arguments);return r&&l(t),e}})}catch(e){console.log(e)}return t}},function(e,t,n){var r="@weex-module/location";e.exports=function(e,t){return t.assign=function(t){e("@weex-module/navigator").push({url:t,animated:"true"},function(e){})},t.replace=function(t){e(r).replace(t)},t.reload=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e(r).reload(t)},t}},function(e,t,n){e.exports=function(e,t){function n(e){return"string"!=typeof e&&(e=String(e)),e.toLowerCase()}function r(e){return"string"!=typeof e&&(e=String(e)),e}function o(e){this.originHeaders=e,this.map={},e instanceof o?e.forEach(function(e,t){this.append(t,e)},t
 his):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function i(){return this.bodyUsed=!1,this._initBody=function(e,t){if(this._bodyInit=e,"string"==typeof e)this._bodyText=e;else{if(e)throw new Error("unsupported BodyInit type");this._bodyText=""}},this.text=function(){var e=function(e){if(e.bodyUsed)return t.reject(new TypeError("Already read"));e.bodyUsed=!0}(this);return e||t.resolve(this._bodyText)},this.json=function(){return this.text().then(JSON.parse)},this}o.prototype.append=function(e,t){e=n(e),t=r(t);var o=this.map[e];this.map[e]=o?o+","+t:t},o.prototype.delete=function(e){delete this.map[n(e)]},o.prototype.get=function(e){return e=n(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(n(e))},o.prototype.set=function(e,t){this.map[n(e)]=[r(t)]},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)};var a=["DELETE","GET","HEAD","OPTIONS","POST"
 ,"PUT"];function u(e,t){var n,r,i=(t=t||{}).body;if(u.prototype.isPrototypeOf(e)){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,i||(i=e._bodyInit,e.bodyUsed=!0)}else this.url=e;if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=(n=t.method||this.method||"GET",r=n.toUpperCase(),a.indexOf(r)>-1?r:n),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i,t)}function s(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e,t)}u.prototype.clone=function(){return new u(this)},i.call(u
 .prototype),i.call(s.prototype),s.prototype.clone=function(){return new s(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},s.error=function(){var e=new s(null,{status:0,statusText:""});return e.type="error",e};var l=[301,302,303,307,308];s.redirect=function(e,t){if(-1===l.indexOf(t))throw new RangeError("Invalid status code");return new s(null,{status:t,headers:{location:e}})};return{fetch:function(n,r){return new t(function(t,o){var i,a={url:(i=u.prototype.isPrototypeOf(n)&&!r?n:new u(n,r)).url,method:i.method,headers:i.headers&&i.headers.originHeaders};void 0!==i._bodyInit&&(a.body=i._bodyInit),a.type=r&&r.dataType?r.dataType:"text",(0,e("@weex-module/stream").fetch)(a,function(e){try{"string"==typeof e&&(e=JSON.parse(e));var n=new s("string"==typeof e.data?e.data:JSON.stringify(e.data),{status:e.status,statusText:e.statusText,headers:e.headers,url:i.url});t(n)}catch(e){o(e)}},function(e){})})},Headers:o,Request:u,Response:s
 }}},function(e,t,n){var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var o=n(2),i=0,a=1,u=2,s=3,l=4,f=["abort","error","load","loadstart","progress","timeout","loadend","readystatechange"];e.exports=function(e){var t=function(t){function n(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n);var e=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return e.UNSENT=i,e.OPENED=a,e.HEADERS_RECEIVED=u,e.LOADING=s,e.DONE=l,e.readyState=i,e.status=0,e.statusText="",e.timeout=0,e._aborted=!1,e._hasError=!1,e._method=null,e._response="",e._url=null,e._timedOut=!1,e._reset(),e}retu
 rn function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,o.apply(undefined,f)),r(n,[{key:"_reset",value:function(){this.readyState=this.UNSENT,this.responseHeaders=void 0,this.status=0,this._hasError=!1,this._headers={},this._response="",this._responseType="",this._sent=!1,this._lowerCaseResponseHeaders={},this._timedOut=!1}},{key:"getAllResponseHeaders",value:function(){if(!this.responseHeaders)return null;var e=this.responseHeaders||{};return Object.keys(e).map(function(t){return t+": "+e[t]}).join("\r\n")}},{key:"getResponseHeader",value:function(e){var t=this._lowerCaseResponseHeaders[e.toLowerCase()];return void 0!==t?t:null}},{key:"setRequestHeader",value:function(e,t){if(this.readyState!==this.OPENED)throw new Error("R
 equest has not been opened");this._headers[e.toLowerCase()]=String(t)}},{key:"open",value:function(e,t,n){if(this.readyState!==this.UNSENT)throw new Error("Cannot open, already sending");if(void 0!==n&&!n)throw new Error("Synchronous http requests are not supported");if(!t)throw new Error("Cannot load an empty url");this._method=e.toUpperCase(),this._url=t,this._ab

<TRUNCATED>


[3/4] incubator-weex git commit: + [Core] Add string cache

Posted by ky...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/sdk/assets/weex-main-jsfm.js
----------------------------------------------------------------------
diff --git a/android/sdk/assets/weex-main-jsfm.js b/android/sdk/assets/weex-main-jsfm.js
index 0517f35..78d3a32 100644
--- a/android/sdk/assets/weex-main-jsfm.js
+++ b/android/sdk/assets/weex-main-jsfm.js
@@ -1,2 +1,2 @@
-(this.nativeLog||function(e){console.log(e)})("START JS FRAMEWORK 0.26.3, Build 2018-04-27 10:31. (Vue: 2.5.13-weex.5, Rax: 0.4.20)");var global=this,process={env:{}},setTimeout=global.setTimeout;!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t():"function"==typeof define&&define.amd?define(t):t()}(0,function(){"use strict";var t,c,r,u;function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function n(e,t){return e(t={exports:{}},t.exports),t.exports}Array.from||(Array.from=(t=Object.prototype.toString,c=function(e){return"function"==typeof e||"[object Function]"===t.call(e)},r=Math.pow(2,53)-1,u=function(e){var t,n=(t=Number(e),isNaN(t)?0:0!==t&&isFinite(t)?(0<t?1:-1)*Math.floor(Math.abs(t)):t);return Math.min(Math.max(n,0),r)},function(e){var t=Object(e);if(null==e)throw new TypeError("Array.from requires an array-like object - not null or undefined");var n,r=1<arguments.length?arguments[1]:void 0;if(void 0!==r){if(!
 c(r))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(n=arguments[2])}for(var o,i=u(t.length),a=c(this)?Object(new this(i)):new Array(i),s=0;s<i;)o=t[s],a[s]=r?void 0===n?r(o,s):r.call(n,o,s):o,s+=1;return a.length=i,a}));var v=n(function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)}),m=n(function(e){var t=e.exports={version:"2.5.5"};"number"==typeof __e&&(__e=t)}),o=(m.version,function(e){return"object"==typeof e?null!==e:"function"==typeof e}),y=function(e){if(!o(e))throw TypeError(e+" is not an object!");return e},i=function(e){try{return!!e()}catch(e){return!0}},a=!i(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),s=v.document,l=o(s)&&o(s.createElement),f=function(e){return l?s.createElement(e):{}},p=!a&&!i(function(){return 7!=Object.defineProperty(f("div")
 ,"a",{get:function(){return 7}}).a}),d=Object.defineProperty,h={f:a?Object.defineProperty:function(e,t,n){if(y(e),t=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}(t,!0),y(n),p)try{return d(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},k=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},S=a?function(e,t,n){return h.f(e,t,k(1,n))}:function(e,t,n){return e[t]=n,e},g={}.hasOwnProperty,_=function(e,t){return g.call(e,t)},b=0,w=Math.random(),C=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++b+w).toString(36))},O=n(function(e){var i=C("src"),t="toString",n=Function[t],a=(""+n).split(t);m.inspectSource=function(e){return n.call(e
 )},(e.exports=function(e,t,n,r){var o="function"==typeof n;o&&(_(n,"name")||S(n,"name",t)),e[t]!==n&&(o&&(_(n,i)||S(n,i,e[t]?""+e[t]:a.join(String(t)))),e===v?e[t]=n:r?e[t]?e[t]=n:S(e,t,n):(delete e[t],S(e,t,n)))})(Function.prototype,t,function(){return"function"==typeof this&&this[i]||n.call(this)})}),x=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e},E=function(r,o,e){if(x(r),void 0===o)return r;switch(e){case 1:return function(e){return r.call(o,e)};case 2:return function(e,t){return r.call(o,e,t)};case 3:return function(e,t,n){return r.call(o,e,t,n)}}return function(){return r.apply(o,arguments)}},j="prototype",A=function(e,t,n){var r,o,i,a,s=e&A.F,c=e&A.G,u=e&A.S,l=e&A.P,f=e&A.B,p=c?v:u?v[t]||(v[t]={}):(v[t]||{})[j],d=c?m:m[t]||(m[t]={}),h=d[j]||(d[j]={});for(r in c&&(n=t),n)i=((o=!s&&p&&void 0!==p[r])?p:n)[r],a=f&&o?E(i,v):l&&"function"==typeof i?E(Function.call,i):i,p&&O(p,r,i,e&A.U),d[r]!=i&&S(d,r,a),l&&h[r]!=i&&(h[r]=i)};v.core=m,A.F=1,
 A.G=2,A.S=4,A.P=8,A.B=16,A.W=32,A.U=64,A.R=128;var $,I=A,T={}.toString,M=function(e){return T.call(e).slice(8,-1)},F=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==M(e)?e.split(""):Object(e)},P=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e},N=function(e){return F(P(e))},D=Math.ceil,R=Math.floor,V=function(e){return isNaN(e=+e)?0:(0<e?R:D)(e)},J=Math.min,L=function(e){return 0<e?J(V(e),9007199254740991):0},U=Math.max,q=Math.min,z="__core-js_shared__",B=v[z]||(v[z]={}),W=function(e){return B[e]||(B[e]={})},H=W("keys"),X=function(e){return H[e]||(H[e]=C(e))},G=($=!1,function(e,t,n){var r,o,i,a=N(e),s=L(a.length),c=(o=s,(r=V(r=n))<0?U(r+o,0):q(r,o));if($&&t!=t){for(;c<s;)if((i=a[c++])!=i)return!0}else for(;c<s;c++)if(($||c in a)&&a[c]===t)return $||c||0;return!$&&-1}),K=X("IE_PROTO"),Z="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),Y=Object.keys||function(e){return function(
 e,t){var n,r=N(e),o=0,i=[];for(n in r)n!=K&&_(r,n)&&i.push(n);for(;t.length>o;)_(r,n=t[o++])&&(~G(i,n)||i.push(n));return i}(e,Z)},Q={f:Object.getOwnPropertySymbols},ee={f:{}.propertyIsEnumerable},te=function(e){return Object(P(e))},ne=Object.assign,re=!ne||i(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=ne({},e)[n]||Object.keys(ne({},t)).join("")!=r})?function(e,t){for(var n=arguments,r=te(e),o=arguments.length,i=1,a=Q.f,s=ee.f;i<o;)for(var c,u=F(n[i++]),l=a?Y(u).concat(a(u)):Y(u),f=l.length,p=0;p<f;)s.call(u,c=l[p++])&&(r[c]=u[c]);return r}:ne;I(I.S+I.F,"Object",{assign:re});m.Object.assign;Object.setPrototypeOf||(Object.setPrototypeOf=function(t,n){var r;function o(e,t){return r.call(e,t),e}try{(r=t.getOwnPropertyDescriptor(t.prototype,n).set).call({},null)}catch(e){if(t.prototype!=={}[n])return;r=function(e){this[n]=e},o.polyfill=o(o({},null),t.prototype)instanceof t}return o}(Object,"__proto__"));var oe=gl
 obal.WXEnvironment;oe&&"iOS"===oe.platform&&(global.Promise=void 0);var ie=n(function(e){var t=W("wks"),n=v.Symbol,r="function"==typeof n;(e.exports=function(e){return t[e]||(t[e]=r&&n[e]||(r?n:C)("Symbol."+e))}).store=t}),ae=ie("toStringTag"),se="Arguments"==M(function(){return arguments}()),ce=function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),ae))?n:se?M(t):"Object"==(r=M(t))&&"function"==typeof t.callee?"Arguments":r},ue={};ue[ie("toStringTag")]="z",ue+""!="[object z]"&&O(Object.prototype,"toString",function(){return"[object "+ce(this)+"]"},!0);var le={},fe=a?Object.defineProperties:function(e,t){y(e);for(var n,r=Y(t),o=r.length,i=0;i<o;)h.f(e,n=r[i++],t[n]);return e},pe=v.document,de=pe&&pe.documentElement,he=X("IE_PROTO"),ve=function(){},me="prototype",ye=function(){var e,t=f("iframe"),n=Z.length;for(t.style.display="none",de.appendChild(t),t.src="javascript:",(e=t.contentWindow.document)
 .open(),e.write("<script>document.F=Object<\/script>"),e.close(),ye=e.F;n--;)delete ye[me][Z[n]];return ye()},ge=Object.create||function(e,t){var n;return null!==e?(ve[me]=y(e),n=new ve,ve[me]=null,n[he]=e):n=ye(),void 0===t?n:fe(n,t)},_e=h.f,be=ie("toStringTag"),we=function(e,t,n){e&&!_(e=n?e:e.prototype,be)&&_e(e,be,{configurable:!0,value:t})},ke={};S(ke,ie("iterator"),function(){return this});var Se,Ce=X("IE_PROTO"),Oe=Object.prototype,xe=Object.getPrototypeOf||function(e){return e=te(e),_(e,Ce)?e[Ce]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?Oe:null},Ee=ie("iterator"),je=!([].keys&&"next"in[].keys()),Ae="values",$e=function(){return this},Ie=function(e,t,n,r,o,i,a){var s,c,u;c=t,u=r,(s=n).prototype=ge(ke,{next:k(1,u)}),we(s,c+" Iterator");var l,f,p,d=function(e){if(!je&&e in y)return y[e];switch(e){case"keys":case Ae:return function(){return new n(this,e)}}return function(){return new n(this,e)}},h=t+" Iterator",v=o=
 =Ae,m=!1,y=e.prototype,g=y[Ee]||y["@@iterator"]||o&&y[o],_=g||d(o),b=o?v?d("entries"):_:void 0,w="Array"==t&&y.entries||g;if(w&&(p=xe(w.call(new e)))!==Object.prototype&&p.next&&(we(p,h,!0),"function"!=typeof p[Ee]&&S(p,Ee,$e)),v&&g&&g.name!==Ae&&(m=!0,_=function(){return g.call(this)}),(je||m||!y[Ee])&&S(y,Ee,_),le[t]=_,le[h]=$e,o)if(l={values:v?_:d(Ae),keys:i?_:d("keys"),entries:b},a)for(f in l)f in y||O(y,f,l[f]);else I(I.P+I.F*(je||m),t,l);return l},Te=(Se=!0,function(e,t){var n,r,o=String(P(e)),i=V(t),a=o.length;return i<0||a<=i?Se?"":void 0:(n=o.charCodeAt(i))<55296||56319<n||i+1===a||(r=o.charCodeAt(i+1))<56320||57343<r?Se?o.charAt(i):n:Se?o.slice(i,i+2):r-56320+(n-55296<<10)+65536});Ie(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=Te(t,n),this._i+=e.length,{value:e,done:!1})});var Me=ie("unscopables"),Fe=Array.prototype;null==Fe[Me]&&S(Fe,Me,{});var Pe=function(e){Fe[Me][e]=!0},Ne=fu
 nction(e,t){return{value:t,done:!!e}},De=Ie(Array,"Array",function(e,t){this._t=N(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,Ne(1)):Ne(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values");le.Arguments=le.Array,Pe("keys"),Pe("values"),Pe("entries");for(var Re=ie("iterator"),Ve=ie("toStringTag"),Je=le.Array,Le={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},Ue=Y(Le),qe=0;qe<Ue.length;qe++){var ze,Be=Ue[qe],We=Le[Be],He=v[Be],Xe=He&&He.prototype;
 if(Xe&&(Xe[Re]||S(Xe,Re,Je),Xe[Ve]||S(Xe,Ve,Be),le[Be]=Je,We))for(ze in De)Xe[ze]||O(Xe,ze,De[ze],!0)}var Ge,Ke,Ze,Ye=function(t,e,n,r){try{return r?e(y(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&y(o.call(t)),e}},Qe=ie("iterator"),et=Array.prototype,tt=ie("iterator"),nt=m.getIteratorMethod=function(e){if(null!=e)return e[tt]||e["@@iterator"]||le[ce(e)]},rt=n(function(e){var d={},h={},t=e.exports=function(e,t,n,r,o){var i,a,s,c,u,l=o?function(){return e}:nt(e),f=E(n,r,t?2:1),p=0;if("function"!=typeof l)throw TypeError(e+" is not iterable!");if(void 0===(u=l)||le.Array!==u&&et[Qe]!==u){for(s=l.call(e);!(a=s.next()).done;)if((c=Ye(s,f,a.value,t))===d||c===h)return c}else for(i=L(e.length);p<i;p++)if((c=t?f(y(a=e[p])[0],a[1]):f(e[p]))===d||c===h)return c};t.BREAK=d,t.RETURN=h}),ot=ie("species"),it=v.process,at=v.setImmediate,st=v.clearImmediate,ct=v.MessageChannel,ut=v.Dispatch,lt=0,ft={},pt="onreadystatechange",dt=function(){var e=+this;if(ft.hasOwnProperty(e)){var t=ft
 [e];delete ft[e],t()}},ht=function(e){dt.call(e.data)};at&&st||(at=function(e){for(var t=arguments,n=[],r=1;arguments.length>r;)n.push(t[r++]);return ft[++lt]=function(){!function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}e.apply(n,t)}("function"==typeof e?e:Function(e),n)},Ge(lt),lt},st=function(e){delete ft[e]},"process"==M(it)?Ge=function(e){it.nextTick(E(dt,e,1))}:ut&&ut.now?Ge=function(e){ut.now(E(dt,e,1))}:ct?(Ze=(Ke=new ct).port2,Ke.port1.onmessage=ht,Ge=E(Ze.postMessage,Ze,1)):v.addEventListener&&"function"==typeof postMessage&&!v.importScripts?(Ge=function(e){v.postMessage(e+"","*")},v.addEventListener("message",ht,!1)):Ge=pt in f("script")?function(e){de.appendChild(f("script"))[pt]=function(){de.removeChild(this),dt.call(e)}}:funct
 ion(e){setTimeout(E(dt,e,1),0)});var vt={set:at,clear:st},mt=vt.set,yt=v.MutationObserver||v.WebKitMutationObserver,gt=v.process,_t=v.Promise,bt="process"==M(gt);var wt={f:function(e){return new function(e){var n,r;this.promise=new e(function(e,t){if(void 0!==n||void 0!==r)throw TypeError("Bad Promise constructor");n=e,r=t}),this.resolve=x(n),this.reject=x(r)}(e)}},kt=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}},St=ie("species"),Ct=ie("iterator"),Ot=!1;try{[7][Ct]().return=function(){Ot=!0}}catch(e){}var xt,Et,jt,At,$t,It=vt.set,Tt=function(){var n,r,o,e=function(){var e,t;for(bt&&(e=gt.domain)&&e.exit();n;){t=n.fn,n=n.next;try{t()}catch(e){throw n?o():r=void 0,e}}r=void 0,e&&e.enter()};if(bt)o=function(){gt.nextTick(e)};else if(!yt||v.navigator&&v.navigator.standalone)if(_t&&_t.resolve){var t=_t.resolve();o=function(){t.then(e)}}else o=function(){mt.call(v,e)};else{var i=!0,a=document.createTextNode("");new yt(e).observe(a,{characterData:!0}),o=function(){a.data=i
 =!i}}return function(e){var t={fn:e,next:void 0};r&&(r.next=t),n||(n=t,o()),r=t}}(),Mt="Promise",Ft=v.TypeError,Pt=v.process,Nt=v[Mt],Dt="process"==ce(Pt),Rt=function(){},Vt=Et=wt.f,Jt=!!function(){try{var e=Nt.resolve(1),t=(e.constructor={})[ie("species")]=function(e){e(Rt,Rt)};return(Dt||"function"==typeof PromiseRejectionEvent)&&e.then(Rt)instanceof t}catch(e){}}(),Lt=function(e){var t;return!(!o(e)||"function"!=typeof(t=e.then))&&t},Ut=function(l,n){if(!l._n){l._n=!0;var r=l._c;Tt(function(){for(var c=l._v,u=1==l._s,e=0,t=function(e){var t,n,r,o=u?e.ok:e.fail,i=e.resolve,a=e.reject,s=e.domain;try{o?(u||(2==l._h&&Bt(l),l._h=1),!0===o?t=c:(s&&s.enter(),t=o(c),s&&(s.exit(),r=!0)),t===e.promise?a(Ft("Promise-chain cycle")):(n=Lt(t))?n.call(t,i,a):i(t)):a(c)}catch(e){s&&!r&&s.exit(),a(e)}};r.length>e;)t(r[e++]);l._c=[],l._n=!1,n&&!l._h&&qt(l)})}},qt=function(i){It.call(v,function(){var e,t,n,r=i._v,o=zt(i);if(o&&(e=kt(function(){Dt?Pt.emit("unhandledRejection",r,i):(t=v.onunhandledre
 jection)?t({promise:i,reason:r}):(n=v.console)&&n.error&&n.error("Unhandled promise rejection",r)}),i._h=Dt||zt(i)?2:1),i._a=void 0,o&&e.e)throw e.v})},zt=function(e){return 1!==e._h&&0===(e._a||e._c).length},Bt=function(t){It.call(v,function(){var e;Dt?Pt.emit("rejectionHandled",t):(e=v.onrejectionhandled)&&e({promise:t,reason:t._v})})},Wt=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),Ut(t,!0))},Ht=function(e){var n,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===e)throw Ft("Promise can't be resolved itself");(n=Lt(e))?Tt(function(){var t={_w:r,_d:!1};try{n.call(e,E(Ht,t,1),E(Wt,t,1))}catch(e){Wt.call(t,e)}}):(r._v=e,r._s=1,Ut(r,!1))}catch(e){Wt.call({_w:r,_d:!1},e)}}};Jt||(Nt=function(e){!function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!")}(this,Nt,Mt,"_h"),x(e),xt.call(this);try{e(E(Ht,this,1),E(Wt,this,1))}catch(e){Wt.call(this,e)}},(xt=function(e){this._c=[],this._a=void 0,this._s=0,this
 ._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=function(e,t,n){for(var r in t)O(e,r,t[r],n);return e}(Nt.prototype,{then:function(e,t){var n,r,o,i=Vt((n=Nt,void 0===(o=y(this).constructor)||null==(r=y(o)[ot])?n:x(r)));return i.ok="function"!=typeof e||e,i.fail="function"==typeof t&&t,i.domain=Dt?Pt.domain:void 0,this._c.push(i),this._a&&this._a.push(i),this._s&&Ut(this,!1),i.promise},catch:function(e){return this.then(void 0,e)}}),jt=function(){var e=new xt;this.promise=e,this.resolve=E(Ht,e,1),this.reject=E(Wt,e,1)},wt.f=Vt=function(e){return e===Nt||e===At?new jt(e):Et(e)}),I(I.G+I.W+I.F*!Jt,{Promise:Nt}),we(Nt,Mt),$t=v[Mt],a&&$t&&!$t[St]&&h.f($t,St,{configurable:!0,get:function(){return this}}),At=m[Mt],I(I.S+I.F*!Jt,Mt,{reject:function(e){var t=Vt(this);return(0,t.reject)(e),t.promise}}),I(I.S+I.F*!Jt,Mt,{resolve:function(e){return function(e,t){if(y(e),o(t)&&t.constructor===e)return t;var n=wt.f(e);return(0,n.resolve)(t),n.promise}(this,e)}}),I(I.S+I.F*!(Jt&&function(e,
 t){if(!t&&!Ot)return!1;var n=!1;try{var r=[7],o=r[Ct]();o.next=function(){return{done:n=!0}},r[Ct]=function(){return o},e(r)}catch(e){}return n}(function(e){Nt.all(e).catch(Rt)})),Mt,{all:function(e){var a=this,t=Vt(a),s=t.resolve,c=t.reject,n=kt(function(){var r=[],o=0,i=1;rt(e,!1,function(e){var t=o++,n=!1;r.push(void 0),i++,a.resolve(e).then(function(e){n||(n=!0,r[t]=e,--i||s(r))},c)}),--i||s(r)});return n.e&&c(n.v),t.promise},race:function(e){var t=this,n=Vt(t),r=n.reject,o=kt(function(){rt(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}});var Xt=["off","error","warn","info","log","debug"],Gt={};global.console;function Kt(e){var t=global.WXEnvironment&&global.WXEnvironment.logLevel||"log";return Gt[t]&&Gt[t][e]}function Zt(e){return e.map(function(e){return e="[object object]"===Object.prototype.toString.call(e).toLowerCase()?JSON.stringify(e):String(e)})}global.setTimeout;var Yt=global.setTimeoutNative;function Qt(t,n,r){if(t.hasOwnProperty(n))
 {var e=t[n];Object.defineProperty(t,n,{get:function(){return e},set:function(e){if(this===t)throw Error("Cannot assign to read only property "+n+" of "+r);return Object.defineProperty(this,n,{value:e,writable:!0}),e}})}}!function(){if(void 0===setTimeout&&"function"==typeof Yt){var n={},r=0;global.setTimeout=function(e,t){n[++r]=e,Yt(r.toString(),t)},global.setTimeoutCallback=function(e){"function"==typeof n[e]&&(n[e](),delete n[e])}}}(),function(){if(Xt.forEach(function(n){var r=Xt.indexOf(n);Gt[n]={},Xt.forEach(function(e){var t=Xt.indexOf(e);t<=r&&(Gt[n][e]=!0)})}),global.WXEnvironment&&"Web"!==global.WXEnvironment.platform)global.console={debug:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];Kt("debug")&&global.nativeLog.apply(global,Zt(e).concat(["__DEBUG"]))},log:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];Kt("log")&&global.nativeLog.apply(global,Zt(e).concat(["__LOG"]))},info:function(){for(var e=[],t=arguments.length;t--;)e[t]=argument
 s[t];Kt("info")&&global.nativeLog.apply(global,Zt(e).concat(["__INFO"]))},warn:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];Kt("warn")&&global.nativeLog.apply(global,Zt(e).concat(["__WARN"]))},error:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];Kt("error")&&global.nativeLog.apply(global,Zt(e).concat(["__ERROR"]))}};else{var e=console.debug,t=console.log,n=console.info,r=console.warn,o=console.error;console.__ori__={debug:e,log:t,info:n,warn:r,error:o},console.debug=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];Kt("debug")&&console.__ori__.debug.apply(console,e)},console.log=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];Kt("log")&&console.__ori__.log.apply(console,e)},console.info=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];Kt("info")&&console.__ori__.info.apply(console,e)},console.warn=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];Kt("warn")&&console.__ori__.war
 n.apply(console,e)},console.error=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];Kt("error")&&console.__ori__.error.apply(console,e)}}}();var en={framework:"0.26.3",transformer:">=0.1.5 <0.5"};function tn(e,t,n){return t+"@"+n+"#"+e}var nn=function(e){this.instanceId=String(e),this.lastCallbackId=0,this.callbacks={},this.hooks={}};nn.prototype.add=function(e){return this.lastCallbackId++,this.callbacks[this.lastCallbackId]=e,this.lastCallbackId},nn.prototype.remove=function(e){var t=this.callbacks[e];return delete this.callbacks[e],t},nn.prototype.registerHook=function(e,t,n,r){var o=tn(e,t,n);this.hooks[o]&&console.warn('[JS Framework] Override an existing component hook "'+o+'".'),this.hooks[o]=r},nn.prototype.triggerHook=function(e,t,n,r){var o=tn(e,t,n),i=this.hooks[o];if("function"!=typeof i)return console.error("[JS Framework] Invalid hook function type ("+typeof i+') on "'+o+'".'),null;var a=null;try{a=i.apply(null,r||[])}catch(e){console.error('[JS Framewo
 rk] Failed to execute the hook function on "'+o+'".')}return a},nn.prototype.consume=function(e,t,n){var r=this.callbacks[e];return void 0!==n&&!1!==n||delete this.callbacks[e],"function"==typeof r?r(t):new Error('invalid callback id "'+e+'"')},nn.prototype.close=function(){this.callbacks={},this.hooks={}};var rn=1;function on(){return(rn++).toString()}function an(e){var t=Object.prototype.toString.call(e);return t.substring(8,t.length-1)}function sn(e){if("function"!=typeof btoa)return"";var t=Array.prototype.map.call(new Uint8Array(e),function(e){return String.fromCharCode(e)}).join("");return btoa(t)}function cn(e){if(!e||"object"!=typeof e)return!0;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}var un={};function ln(e){return un[e]}function fn(e){var t=un[e];return t&&t.taskCenter?t.taskCenter:null}function pn(e,t,n){var r=e.documentElement;if(!(0<r.pureChildren.length||t.parentNode)){var o,i,a=r.children,s=a.indexOf(n);s<0?a.push(t):a.splice(s,0,t
 ),1===t.nodeType?("body"===t.role?(t.docId=e.id,t.ownerDocument=e,t.parentNode=r,hn(t,r)):(t.children.forEach(function(e){e.parentNode=t}),dn(e,t),t.docId=e.id,t.ownerDocument=e,hn(t,r),delete e.nodeMap[t.nodeId]),r.pureChildren.push(t),o=e,i=t.toJSON(),o&&o.taskCenter&&"function"==typeof o.taskCenter.send&&o.taskCenter.send("dom",{action:"createBody"},[i])):(t.parentNode=r,e.nodeMap[t.ref]=t)}}function dn(e,t){t.role="body",t.depth=1,delete e.nodeMap[t.nodeId],t.ref="_root",e.nodeMap._root=t,e.body=t}function hn(t,e){(t.parentNode=e).docId&&(t.docId=e.docId,t.ownerDocument=e.ownerDocument,(t.ownerDocument.nodeMap[t.nodeId]=t).depth=e.depth+1),t.children.forEach(function(e){hn(e,t)})}function vn(e){for(;e;){if(1===e.nodeType)return e;e=e.nextSibling}}function mn(e){for(;e;){if(1===e.nodeType)return e;e=e.previousSibling}}function yn(e,t,n,r){n<0&&(n=0);var o=t[n-1],i=t[n];return t.splice(n,0,e),r&&(o&&(o.nextSibling=e),e.previousSibling=o,(e.nextSibling=i)&&(i.previousSibling=e)),n}
 function gn(e,t,n,r){var o=t.indexOf(e);if(o<0)return-1;if(r){var i=t[o-1],a=t[o+1];i&&(i.nextSibling=a),a&&(a.previousSibling=i)}t.splice(o,1);var s=n;o<=n&&(s=n-1);var c=t[s-1],u=t[s];return t.splice(s,0,e),r&&(c&&(c.nextSibling=e),e.previousSibling=c,(e.nextSibling=u)&&(u.previousSibling=e)),o===s?-1:n}function _n(e,t,n){var r=t.indexOf(e);if(!(r<0)){if(n){var o=t[r-1],i=t[r+1];o&&(o.nextSibling=i),i&&(i.previousSibling=o)}t.splice(r,1)}}var bn,wn=function(){this.nodeId=on(),this.ref=this.nodeId,this.children=[],this.pureChildren=[],this.parentNode=null,this.nextSibling=null,this.previousSibling=null};wn.prototype.destroy=function(){var e=ln(this.docId);e&&(delete this.docId,delete e.nodeMap[this.nodeId]),this.children.forEach(function(e){e.destroy()})};var kn={};var Sn="div",Cn=["click","longpress","touchstart","touchmove","touchend","panstart","panmove","panend","horizontalpan","verticalpan","swipe"];function On(e,t){ln(e).nodeMap[t.nodeId]=t}var xn=function(o){function e(e,t,n
 ){void 0===e&&(e=Sn),o.call(this);var r=kn[e];if(r&&!n)return new r(e,t,!0);t=t||{},this.nodeType=1,this.nodeId=on(),this.ref=this.nodeId,this.type=e,this.attr=t.attr||{},this.style=t.style||{},this.classStyle=t.classStyle||{},this.event={},this.children=[],this.pureChildren=[]}return o&&(e.__proto__=o),((e.prototype=Object.create(o&&o.prototype)).constructor=e).prototype.appendChild=function(e){if(!e.parentNode||e.parentNode===this)if(e.parentNode){if(gn(e,this.children,this.children.length,!0),1===e.nodeType){var t=gn(e,this.pureChildren,this.pureChildren.length),n=fn(this.docId);if(n&&0<=t)return n.send("dom",{action:"moveElement"},[e.ref,this.ref,t])}}else if(hn(e,this),yn(e,this.children,this.children.length,!0),this.docId&&On(this.docId,e),1===e.nodeType){yn(e,this.pureChildren,this.pureChildren.length);var r=fn(this.docId);if(r)return r.send("dom",{action:"addElement"},[this.ref,e.toJSON(),-1])}},e.prototype.insertBefore=function(e,t){if(!(e.parentNode&&e.parentNode!==this||e
 ===t||e.nextSibling&&e.nextSibling===t))if(e.parentNode){if(gn(e,this.children,this.children.indexOf(t),!0),1===e.nodeType){var n=vn(t),r=gn(e,this.pureChildren,n?this.pureChildren.indexOf(n):this.pureChildren.length),o=fn(this.docId);if(o&&0<=r)return o.send("dom",{action:"moveElement"},[e.ref,this.ref,r])}}else if(hn(e,this),yn(e,this.children,this.children.indexOf(t),!0),this.docId&&On(this.docId,e),1===e.nodeType){var i=vn(t),a=yn(e,this.pureChildren,i?this.pureChildren.indexOf(i):this.pureChildren.length),s=fn(this.docId);if(s)return s.send("dom",{action:"addElement"},[this.ref,e.toJSON(),a])}},e.prototype.insertAfter=function(e,t){if(!(e.parentNode&&e.parentNode!==this||e===t||e.previousSibling&&e.previousSibling===t))if(e.parentNode){if(gn(e,this.children,this.children.indexOf(t)+1,!0),1===e.nodeType){var n=gn(e,this.pureChildren,this.pureChildren.indexOf(mn(t))+1),r=fn(this.docId);if(r&&0<=n)return r.send("dom",{action:"moveElement"},[e.ref,this.ref,n])}}else if(hn(e,this),y
 n(e,this.children,this.children.indexOf(t)+1,!0),this.docId&&On(this.docId,e),1===e.nodeType){var o=yn(e,this.pureChildren,this.pureChildren.indexOf(mn(t))+1),i=fn(this.docId);if(i)return i.send("dom",{action:"addElement"},[this.ref,e.toJSON(),o])}},e.prototype.removeChild=function(e,t){if(e.parentNode&&(_n(e,this.children,!0),1===e.nodeType)){_n(e,this.pureChildren);var n=fn(this.docId);n&&n.send("dom",{action:"removeElement"},[e.ref])}t||e.destroy()},e.prototype.clear=function(){var t=fn(this.docId);t&&this.pureChildren.forEach(function(e){t.send("dom",{action:"removeElement"},[e.ref])}),this.children.forEach(function(e){e.destroy()}),this.children.length=0,this.pureChildren.length=0},e.prototype.setAttr=function(e,t,n){if(this.attr[e]!==t||!1===n){this.attr[e]=t;var r=fn(this.docId);if(!n&&r){var o={};o[e]=t,r.send("dom",{action:"updateAttrs"},[this.ref,o])}}},e.prototype.setAttrs=function(e,t){if(!cn(e)){var n={};for(var r in e)this.attr[r]!==e[r]&&(this.attr[r]=e[r],n[r]=e[r]);
 if(!cn(n)){var o=fn(this.docId);!t&&o&&o.send("dom",{action:"updateAttrs"},[this.ref,n])}}},e.prototype.setStyle=function(e,t,n){if(this.style[e]!==t||!1===n){this.style[e]=t;var r=fn(this.docId);if(!n&&r){var o={};o[e]=t,r.send("dom",{action:"updateStyle"},[this.ref,o])}}},e.prototype.setStyles=function(e,t){if(!cn(e)){var n={};for(var r in e)this.style[r]!==e[r]&&(this.style[r]=e[r],n[r]=e[r]);if(!cn(n)){var o=fn(this.docId);!t&&o&&o.send("dom",{action:"updateStyle"},[this.ref,n])}}},e.prototype.setClassStyle=function(e){for(var t in this.classStyle)this.classStyle[t]="";Object.assign(this.classStyle,e);var n=fn(this.docId);n&&n.send("dom",{action:"updateStyle"},[this.ref,this.toStyle()])},e.prototype.addEvent=function(e,t,n){if(this.event||(this.event={}),!this.event[e]){this.event[e]={handler:t,params:n};var r=fn(this.docId);r&&r.send("dom",{action:"addEvent"},[this.ref,e])}},e.prototype.removeEvent=function(e){if(this.event&&this.event[e]){delete this.event[e];var t=fn(this.doc
 Id);t&&t.send("dom",{action:"removeEvent"},[this.ref,e])}},e.prototype.fireEvent=function(e,t,n,r){var o=null,i=!1,a=this.event[e];if(a&&t){var s=a.handler;t.stopPropagation=function(){i=!0},o=r&&r.params?s.call.apply(s,[this].concat(r.params,[t])):s.call(this,t)}return!i&&n&&-1!==Cn.indexOf(e)&&this.parentNode&&this.parentNode.fireEvent&&(t.currentTarget=this.parentNode,this.parentNode.fireEvent(e,t,n)),o},e.prototype.toStyle=function(){return Object.assign({},this.classStyle,this.style)},e.prototype.toJSON=function(){var e={ref:this.ref.toString(),type:this.type,attr:this.attr,style:this.toStyle()},t=[];for(var n in this.event){var r=this.event[n].params;r?t.push({type:n,params:r}):t.push(n)}return t.length&&(e.event=t),this.pureChildren.length&&(e.children=this.pureChildren.map(function(e){return e.toJSON()})),e},e.prototype.toString=function(){return"<"+this.type+" attr="+JSON.stringify(this.attr)+" style="+JSON.stringify(this.toStyle())+">"+this.pureChildren.map(function(e){ret
 urn e.toString()}).join("")+"</"+this.type+">"},e}(wn);bn=xn;var En=function(){},jn=function(e,t){Object.defineProperty(this,"instanceId",{enumerable:!0,value:String(e)}),Object.defineProperty(this,"callbackManager",{enumerable:!0,value:new nn(e)}),En=t||function(){}};function An(e,t){var n=ln(e);return n?Array.isArray(t)?t.map(function(e){switch(e.method){case"callback":return function(e,t,n,r){return e.taskCenter.callback(t,n,r)}.apply(void 0,[n].concat(e.args));case"fireEventSync":case"fireEvent":return function(e,t,n,r,o,i){var a=e.getRef(t);return a?e.fireEvent(a,n,r,o,i):new Error('invalid element reference "'+t+'"')}.apply(void 0,[n].concat(e.args));case"componentHook":return function(e,t,n,r,o){if(!e||!e.taskCenter)return console.error('[JS Framework] Can\'t find "document" or "taskCenter".'),null;var i=null;try{i=e.taskCenter.triggerHook(t,n,r,o)}catch(e){console.error('[JS Framework] Failed to trigger the "'+n+"@"+r+'" hook on '+t+".")}return i}.apply(void 0,[n].concat(e.a
 rgs))}}):void 0:new Error("[JS Framework] Failed to receiveTasks, instance ("+e+") is not available.")}jn.prototype.callback=function(e,t,n){return this.callbackManager.consume(e,t,n)},jn.prototype.registerHook=function(){for(var e,t=[],n=arguments.length;n--;)t[n]=arguments[n];return(e=this.callbackManager).registerHook.apply(e,t)},jn.prototype.triggerHook=function(){for(var e,t=[],n=arguments.length;n--;)t[n]=arguments[n];return(e=this.callbackManager).triggerHook.apply(e,t)},jn.prototype.updateData=function(e,t,n){this.send("module",{module:"dom",method:"updateComponentData"},[e,t,n])},jn.prototype.destroyCallback=function(){return this.callbackManager.close()},jn.prototype.normalize=function(e,t){var n=this;void 0===t&&(t=!1);var r=an(e);if(e&&e instanceof xn)return e.ref;if(e&&e._isVue&&e.$el instanceof xn)return e.$el.ref;if("Function"===r)return this.callbackManager.add(e).toString();if(t){if("Object"===r){var o={};for(var i in e)o[i]=n.normalize(e[i],!0);return o}if("Array"=
 ==r)return e.map(function(e){return n.normalize(e,!0)})}return function(e){var t=an(e);switch(t){case"Undefined":case"Null":return"";case"RegExp":return e.toString();case"Date":return e.toISOString();case"Number":case"String":case"Boolean":case"Array":case"Object":return e;case"ArrayBuffer":return{"@type":"binary",dataType:t,base64:sn(e)};case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":return{"@type":"binary",dataType:t,base64:sn(e.buffer)};default:return JSON.stringify(e)}}(e)},jn.prototype.send=function(e,t,n,r){var o=this,i=t.action,a=t.component,s=t.ref,c=t.module,u=t.method;switch(n=n.map(function(e){return o.normalize(e)}),"Object"===an(r)&&(r=this.normalize(r,!0)),e){case"dom":return this[i](this.instanceId,n);case"component":return this.componentHandler(this.instanceId,s,u,n,Object.assign({component:a},r));default:return this.moduleHandler(this.instanceId,c,u,
 n,r)}},jn.prototype.callDOM=function(e,t){return this[e](this.instanceId,t)},jn.prototype.callComponent=function(e,t,n,r){return this.componentHandler(this.instanceId,e,t,n,r)},jn.prototype.callModule=function(e,t,n,r){return this.moduleHandler(this.instanceId,e,t,n,r)};var $n={};function In(e){var t=function(t){$n[t]||($n[t]={}),e[t].forEach(function(e){"string"==typeof e?$n[t][e]=!0:$n[t][e.name]=e.args})};for(var n in e)t(n)}function Tn(e,t){return"string"==typeof t?!(!$n[e]||!$n[e][t]):!!$n[e]}var Mn={};function Fn(e){Array.isArray(e)&&e.forEach(function(e){e&&("string"==typeof e?Mn[e]=!0:"object"==typeof e&&"string"==typeof e.type&&function(o,e){if(e&&e.length){var t=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t}(bn);e.forEach(function(r){t.prototype[r]=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=fn(this.docId);if(n)return n.send("component",{ref:this.ref,component
 :o,method:r},e)}}),kn[o]=t}}((Mn[e.type]=e).type,e.methods))})}function Pn(e){return!!Mn[e]}var Nn=[];function Dn(e,t){Vn(e)?console.warn('Service "'+e+'" has been registered already!'):(t=Object.assign({},t),Nn.push({name:e,options:t}))}function Rn(n){Nn.some(function(e,t){if(e.name===n)return Nn.splice(t,1),!0})}function Vn(e){return t=e,0<=Nn.map(function(e){return e.name}).indexOf(t);var t}var Jn=function(t){function e(e){t.call(this),this.nodeType=8,this.nodeId=on(),this.ref=this.nodeId,this.type="comment",this.value=e,this.children=[],this.pureChildren=[]}return t&&(e.__proto__=t),((e.prototype=Object.create(t&&t.prototype)).constructor=e).prototype.toString=function(){return"\x3c!-- "+this.value+" --\x3e"},e}(wn);function Ln(e,t){return void 0===t&&(t=[]),{module:"dom",method:e,args:t}}var Un=function(e,t){this.id=e,this.batched=!1,this.updates=[],"function"==typeof t?Object.defineProperty(this,"handler",{configurable:!0,enumerable:!0,writable:!0,value:t}):console.error("[JS 
 Runtime] invalid parameter, handler must be a function")};Un.prototype.createFinish=function(e){return(0,this.handler)([Ln("createFinish")],e)},Un.prototype.updateFinish=function(e){return(0,this.handler)([Ln("updateFinish")],e)},Un.prototype.refreshFinish=function(e){return(0,this.handler)([Ln("refreshFinish")],e)},Un.prototype.createBody=function(e){var t=e.toJSON(),n=t.children;delete t.children;var r=[Ln("createBody",[t])];return n&&r.push.apply(r,n.map(function(e){return Ln("addElement",[t.ref,e,-1])})),this.addActions(r)},Un.prototype.addElement=function(e,t,n){return 0<=n||(n=-1),this.addActions(Ln("addElement",[t,e.toJSON(),n]))},Un.prototype.removeElement=function(e){if(Array.isArray(e)){var t=e.map(function(e){return Ln("removeElement",[e])});return this.addActions(t)}return this.addActions(Ln("removeElement",[e]))},Un.prototype.moveElement=function(e,t,n){return this.addActions(Ln("moveElement",[e,t,n]))},Un.prototype.setAttr=function(e,t,n){var r={};return r[t]=n,this.ad
 dActions(Ln("updateAttrs",[e,r]))},Un.prototype.setStyle=function(e,t,n){var r={};return r[t]=n,this.addActions(Ln("updateStyle",[e,r]))},Un.prototype.setStyles=function(e,t){return this.addActions(Ln("updateStyle",[e,t]))},Un.prototype.addEvent=function(e,t){return this.addActions(Ln("addEvent",[e,t]))},Un.prototype.removeEvent=function(e,t){return this.addActions(Ln("removeEvent",[e,t]))},Un.prototype.handler=function(e,t){return t&&t()},Un.prototype.addActions=function(e){var t=this.updates,n=this.handler;if(Array.isArray(e)||(e=[e]),!this.batched)return n(e);t.push.apply(t,e)};var qn={createBody:"callCreateBody",addElement:"callAddElement",removeElement:"callRemoveElement",moveElement:"callMoveElement",updateAttrs:"callUpdateAttrs",updateStyle:"callUpdateStyle",addEvent:"callAddEvent",removeEvent:"callRemoveEvent"};function zn(e,t,n){var r,o=t.module,i=t.method,a=t.args;return r=i,"dom"===o&&qn[r]&&"function"==typeof global[qn[r]]?global[qn[i]].apply(global,[e].concat(a,["-1"]))
 :n(e,[t],"-1")}var Bn=function e(t,n,r){var o,i;t=t?t.toString():"",this.id=t,this.URL=n,i=this,(o=t)&&(un[o]=i),this.nodeMap={};var a,s,c=e.Listener||Un;this.listener=new c(t,r||(a=t,"function"!=typeof(s=e.handler||global.callNative)&&console.error("[JS Runtime] no default handler"),function(e){Array.isArray(e)||(e=[e]);for(var t=0;t<e.length;t++){var n=zn(a,e[t],s);if(-1===n)return n}})),this.taskCenter=new jn(t,r?function(e){for(var t=[],n=arguments.length-1;0<n--;)t[n]=arguments[n+1];return r.apply(void 0,t)}:e.handler),this.createDocumentElement()};Bn.prototype.getRef=function(e){return this.nodeMap[e]},Bn.prototype.open=function(){this.listener.batched=!1},Bn.prototype.close=function(){this.listener.batched=!0},Bn.prototype.createDocumentElement=function(){var n=this;if(!this.documentElement){var e=new xn("document");e.docId=this.id,e.ownerDocument=this,e.role="documentElement",e.depth=0,e.ref="_documentElement",this.nodeMap._documentElement=e,this.documentElement=e,Object.def
 ineProperty(e,"appendChild",{configurable:!0,enumerable:!0,writable:!0,value:function(e){pn(n,e)}}),Object.defineProperty(e,"insertBefore",{configurable:!0,enumerable:!0,writable:!0,value:function(e,t){pn(n,e,t)}})}return this.documentElement},Bn.prototype.createBody=function(e,t){this.body||dn(this,new xn(e,t));return this.body},Bn.prototype.createElement=function(e,t){return new xn(e,t)},Bn.prototype.createComment=function(e){return new Jn(e)},Bn.prototype.fireEvent=function(e,t,n,r,o){if(e){(n=n||{}).type=n.type||t,n.target=e,n.currentTarget=e,n.timestamp=Date.now(),r&&function(e,t){var n=t.attrs||{};for(var r in n)e.setAttr(r,n[r],!0);var o=t.style||{};for(var i in o)e.setStyle(i,o[i],!0)}(e,r);var i="true"===this.getRef("_root").attr.bubble;return e.fireEvent(t,n,i,o)}},Bn.prototype.destroy=function(){var e;this.taskCenter.destroyCallback(),delete this.listener,delete this.nodeMap,delete this.taskCenter,e=this.id,delete un[e]},Bn.handler=null;var Wn={};function Hn(e){return e["
 [[CurrentInstanceId]]"]}var Xn,Gn,Kn=function(e,t){var n,r;n=this,r=String(e),Object.defineProperty(n,"[[CurrentInstanceId]]",{value:r}),this.config=t||{},this.document=new Bn(e,this.config.bundleUrl),this.requireModule=this.requireModule.bind(this),this.importScript=this.importScript.bind(this),this.isRegisteredModule=Tn,this.isRegisteredComponent=Pn};Kn.prototype.requireModule=function(s){var c=Hn(this);if(c&&this.document&&this.document.taskCenter){if(Tn(s)){var e=s+"#"+c;if(!Wn[e]){var t=$n[s],n={},r=function(a){Object.defineProperty(n,a,{enumerable:!0,configurable:!0,get:function(){return n=s,r=a,(o=fn(e=c))&&"function"==typeof o.send?function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return o.send("module",{module:n,method:r},e)}:(console.error("[JS Framework] Failed to find taskCenter ("+e+")."),null);var e,n,r,o},set:function(e){return n=s,r=a,o=e,(i=fn(t=c))&&"function"==typeof i.send?"function"!=typeof o?(console.error("[JS Framework] "+n+"."+r+" must be ass
 igned as a function."),null):function(e){return i.send("module",{module:n,method:r},[e])}:(console.error("[JS Framework] Failed to find taskCenter ("+t+")."),null);var t,n,r,o,i}})};for(var o in t)r(o);Wn[e]=n}return Wn[e]}console.warn('[JS Framework] using unregistered weex module "'+s+'"')}else console.error('[JS Framework] Failed to requireModule("'+s+'"), instance ('+c+") doesn't exist anymore.")},Kn.prototype.supports=function(e){if("string"!=typeof e)return null;var t=e.match(/^@(\w+)\/(\w+)(\.(\w+))?$/i);if(t){var n=t[1],r=t[2],o=t[4];switch(n){case"module":return Tn(r,o);case"component":return Pn(r)}}return null},Kn.prototype.importScript=function(e,r){void 0===r&&(r={});var o=Hn(this),i=fn(o);return new Promise(function(t,n){i&&"function"!=typeof!i.send||n(new Error('[JS Framework] Failed to import script "'+e+'", no taskCenter ('+o+") matched."));try{i.send("module",{module:"script",method:"importScript"},[e,r],{callback:[function(e){return t(e)},function(e){return n(e)}]}
 )}catch(e){n(e)}})};var Zn=/^\s*\/\/ *(\{[^}]*\}) *\r?\n/;function Yn(){return"0.26.3"}var Qn={};function er(e){return Qn[e]}function tr(e,t,n){void 0===t&&(t={});var r=new Kn(e,t);Object.freeze(r);var o=t.bundleType||"Vue";Qn[e]=o;var i=Gn.frameworks[o];if(!i)return new Error('[JS Framework] Invalid bundle type "'+o+'".');!function(e,t,n){var r=fn(e);if(r&&"function"==typeof r.send)if(t&&n){var o="jsfm."+t+"."+n;try{if(Tn("userTrack","addPerfPoint")){var i=Object.create(null);i[o]="4",r.send("module",{module:"userTrack",method:"addPerfPoint"},[i])}}catch(e){console.error('[JS Framework] Failed to trace "'+o+'"!')}}else console.warn("[JS Framework] Invalid track type ("+t+") or value ("+n+")");else console.error("[JS Framework] Failed to create tracker!")}(e,"bundleType",o);var a,s,c,u,l=(a=e,s={weex:r,config:t,created:Date.now(),framework:o,bundleType:o},c=Gn,(u=Object.create(null)).service=Object.create(null),Nn.forEach(function(e){var t=e.name,n=e.options.create;if(n)try{var r=n(
 a,s,c);Object.assign(u.service,r),Object.assign(u,r.instance)}catch(e){console.error("[JS Runtime] Failed to create service "+t+".")}}),delete u.service.instance,Object.freeze(u.service),u);Object.freeze(l);var f=Object.create(null);Object.assign(f,l,{weex:r,getJSFMVersion:Yn,__WEEX_CALL_JAVASCRIPT__:An,services:l}),Object.freeze(f);var p=Object.assign({},f);return"function"==typeof i.createInstanceContext&&Object.assign(p,i.createInstanceContext(e,f,n)),Object.freeze(p),p}var nr={createInstance:function(e,t,n,r){if(Qn[e])return new Error('The instance id "'+e+'" has already been used!');var o=function(e){var t=Zn.exec(e);if(t)try{return JSON.parse(t[1]).framework}catch(e){}return"Weex"}(t);Qn[e]=o,(n=JSON.parse(JSON.stringify(n||{}))).env=JSON.parse(JSON.stringify(global.WXEnvironment||{})),n.bundleType=o;var i=Gn.frameworks[o];if(!i)return new Error('[JS Framework] Invalid bundle type "'+o+'".');"Weex"===o&&console.error('[JS Framework] COMPATIBILITY WARNING: Weex DSL 1.0 (.we) fr
 amework is no longer supported! It will be removed in the next version of WeexSDK, your page would be crash if you still using the ".we" framework. Please upgrade it to Vue.js or Rax.');var a=tr(e,n,r);if("function"==typeof i.createInstance){if("Rax"===o||"Weex"===o){var s=Object.assign({config:n,created:Date.now(),framework:o},a);return i.createInstance(e,t,n,r,s)}return i.createInstance(e,t,n,r,a)}!function(e,t){var n=[],r=[];for(var o in t)n.push(o),r.push(t[o]);var i="\n    (function (global) {\n      "+e+"\n    })(Object.create(this))\n  ";(new(Function.prototype.bind.apply(Function,[null].concat(n,[i])))).apply(void 0,r)}(t,a)},createInstanceContext:tr,getRoot:function(e){var t=ln(e);try{if(t&&t.body)return t.body.toJSON()}catch(e){return void console.error("[JS Framework] Failed to get the virtual dom tree.")}},getJSFMVersion:Yn,getDocument:ln,registerService:Dn,unregisterService:Rn,callJS:function(e,t){var n=Xn[er(e)];return n&&"function"==typeof n.receiveTasks?n.receiveTask
 s(e,t):An(e,t)}};function rr(s){nr[s]=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,r=e[0],o=er(r);if(o&&Xn[o]){var i=(n=Xn[o])[s].apply(n,e),a={framework:o};return"refreshInstance"===s?Nn.forEach(function(e){var t=e.options.refresh;t&&t(r,{info:a,runtime:Gn})}):"destroyInstance"===s&&(Nn.forEach(function(e){var t=e.options.destroy;t&&t(r,{info:a,runtime:Gn})}),delete Qn[r]),i}return new Error('[JS Framework] Using invalid instance id "'+r+'" when calling '+s+".")}}function or(o,i){nr[o]=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var n in"function"==typeof i&&i.apply(void 0,e),Gn.frameworks){var r=Gn.frameworks[n];r&&r[o]&&r[o].apply(r,e)}}}var ir={Document:Bn,Element:xn,Comment:Jn,Listener:Un,TaskCenter:jn,sendTasks:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return"function"==typeof callNative?callNative.apply(void 0,e):(global.callNative||function(){}).apply(void 0,e)}};Bn.handler=ir.sendTasks;var ar={serv
 ice:{register:Dn,unregister:Rn,has:Vn},freezePrototype:function(){Object.freeze(ir.Comment),Object.freeze(ir.Listener),Object.freeze(ir.Document.prototype),Object.freeze(ir.Comment.prototype),Object.freeze(ir.Listener.prototype)},init:function(e){for(var t in Xn=(Gn=e||{}).frameworks||{},function(){var e={createFinish:global.callCreateFinish,updateFinish:global.callUpdateFinish,refreshFinish:global.callRefreshFinish,createBody:global.callCreateBody,addElement:global.callAddElement,removeElement:global.callRemoveElement,moveElement:global.callMoveElement,updateAttrs:global.callUpdateAttrs,updateStyle:global.callUpdateStyle,addEvent:global.callAddEvent,removeEvent:global.callRemoveEvent},t=jn.prototype,n=function(n){var r=e[n];t[n]=r?function(e,t){return r.apply(void 0,[e].concat(t))}:function(e,t){return En(e,[{module:"dom",method:n,args:t}],"-1")}};for(var r in e)n(r);t.componentHandler=global.callNativeComponent||function(e,t,n,r,o){return En(e,[{component:o.component,ref:t,method:
 n,args:r}])},t.moduleHandler=global.callNativeModule||function(e,t,n,r){return En(e,[{module:t,method:n,args:r}])}}(),Xn){var n=Xn[t];if("function"==typeof n.init)try{n.init(e)}catch(e){}}return or("registerComponents",Fn),or("registerModules",In),or("registerMethods"),["destroyInstance","refreshInstance"].forEach(rr),nr},config:ir};function sr(e,t){void 0===t&&(t={}),this.type=e||"message",this.data=t.data||null,this.origin=t.origin||"",this.source=t.source||null,this.ports=t.ports||[],this.target=null,this.timeStamp=Date.now()}var cr={},ur={};function lr(){}lr.prototype.postMessage=function(e){if(this._closed)throw new Error('BroadcastChannel "'+this.name+'" is closed.');var t=cr[this.name];if(t&&t.length)for(var n=0;n<t.length;++n){var r=t[n];r._closed||r===this||"function"==typeof r.onmessage&&r.onmessage(new sr("message",{data:e}))}},lr.prototype.close=function(){var t=this;if(!this._closed&&(this._closed=!0,cr[this.name])){var e=cr[this.name].filter(function(e){return e!==t});
 e.length?cr[this.name]=e:delete cr[this.name]}};var fr={BroadcastChannel:{create:function(t,e,n){if(ur[t]=[],"function"==typeof global.BroadcastChannel)return{};var r={BroadcastChannel:function(e){Object.defineProperty(this,"name",{configurable:!1,enumerable:!0,writable:!1,value:String(e)}),this._closed=!1,this.onmessage=null,cr[this.name]||(cr[this.name]=[]),cr[this.name].push(this),ur[t].push(this)}};return r.BroadcastChannel.prototype=lr.prototype,{instance:r}},destroy:function(e,t){ur[e].forEach(function(e){return e.close()}),delete ur[e]}}};var pr={},dr={};var hr=Object.freeze({init:function(e){pr.Document=e.Document,pr.Element=e.Element,pr.Comment=e.Comment,pr.sendTasks=e.sendTasks},createInstance:function(t,e,n,r,o){void 0===n&&(n={}),void 0===r&&(r={}),void 0===o&&(o={});var i=new pr.Document(t,n.bundleUrl),a={},s={id:t,data:r,document:i,callbacks:a},c=0;i.addCallback=function(e){return a[++c]=e,c},i.handleCallback=function(e,t,n){var r=a[e];return n&&delete a[e],r(t)},dr[t]
 =s;var u=Object.assign({Document:pr.Document,Element:pr.Element,Comment:pr.Comment,sendTasks:function(e){return pr.sendTasks(t,e,-1)},options:n,document:i},o),l=[],f=[];for(var p in u)l.push(p),f.push(u[p]);return l.push(e),(new(Function.prototype.bind.apply(Function,[null].concat(l)))).apply(void 0,f),pr.sendTasks(t,[{module:"dom",method:"createFinish",args:[]}],-1),s},destroyInstance:function(e){delete dr[e]},getRoot:function(e){return dr[e].document.body.toJSON()},receiveTasks:function(r,e){var o={fireEvent:function(e,t,n,r,o){var i=dr[e].document,a=i.getRef(t);return i.fireEvent(a,n,r,o)},callback:function(e,t,n,r){return dr[e].document.handleCallback(t,n,r)}};if((dr[r]||{}).document&&Array.isArray(e)){var i=[];return e.forEach(function(e){var t=o[e.method],n=[].concat(e.args);"function"==typeof t&&(n.unshift(r),i.push(t.apply(void 0,n)))}),i}}}),vr=n(function(e){e.exports=function(e,o){var _=Object.freeze({});function $(e){return null==e}function I(e){return null!=e}function T(
 e){return!0===e}function M(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function b(e){return null!==e&&"object"==typeof e}var r=Object.prototype.toString;function l(e){return"[object Object]"===r.call(e)}function i(e){var t=parseFloat(String(e));return 0<=t&&Math.floor(t)===t&&isFinite(e)}function t(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function n(e){var t=parseFloat(e);return isNaN(t)?e:t}function s(e,t){for(var n=Object.create(null),r=e.split(","),o=0;o<r.length;o++)n[r[o]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}s("slot,component",!0);var c=s("key,ref,slot,slot-scope,is");function u(e,t){if(e.length){var n=e.indexOf(t);if(-1<n)return e.splice(n,1)}}var a=Object.prototype.hasOwnProperty;function f(e,t){return a.call(e,t)}function p(t){var n=Object.create(null);return function(e){return n[e]||(n[e]=t(e))}}var d=/-(\w)/g,h=p(function(e){return e.replace(d,function(e,t
 ){return t?t.toUpperCase():""})}),v=p(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),m=/\B([A-Z])/g,w=p(function(e){return e.replace(m,"-$1").toLowerCase()});function y(n,r){function e(e){var t=arguments.length;return t?1<t?n.apply(r,arguments):n.call(r,e):n.call(r)}return e._length=n.length,e}function g(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function N(e,t){for(var n in t)e[n]=t[n];return e}function D(e,t,n){}var k=function(e,t,n){return!1},S=function(e){return e};function C(t,n){if(t===n)return!0;var e=b(t),r=b(n);if(!e||!r)return!e&&!r&&String(t)===String(n);try{var o=Array.isArray(t),i=Array.isArray(n);if(o&&i)return t.length===n.length&&t.every(function(e,t){return C(e,n[t])});if(o||i)return!1;var a=Object.keys(t),s=Object.keys(n);return a.length===s.length&&a.every(function(e){return C(t[e],n[e])})}catch(e){return!1}}function O(e,t){for(var n=0;n<e.length;n++)if(C(e[n],t))return n;return-1}function R(e){var t=!1;return function(){t
 ||(t=!0,e.apply(this,arguments))}}var F="data-server-rendered",x=["component","directive","filter"],E=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],j={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:k,isReservedAttr:k,isUnknownElement:k,getTagNamespace:D,parsePlatformTagName:S,mustUseProp:k,_lifecycleHooks:E};function A(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var P=/[^\w.$]/;var V,J="__proto__"in{},L="undefined"!=typeof window,U="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,q=U&&WXEnvironment.platform.toLowerCase(),z=L&&window.navigator.userAgent.toLowerCase(),B=(z&&/msie|trident/.test(z),z&&0<z.indexOf("msie 9.0")),W=z&&0<z.indexOf("edge/"),H=(z&&z.indexOf("android"),z&&/iphone|i
 pad|ipod|ios/.test(z)||"ios"===q),X=(z&&/chrome\/\d+/.test(z),{}.watch);if(L)try{var G={};Object.defineProperty(G,"passive",{get:function(){}}),window.addEventListener("test-passive",null,G)}catch(e){}var K=function(){return void 0===V&&(V=!L&&!U&&void 0!==global&&"server"===global.process.env.VUE_ENV),V},Z=L&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function Y(e){return"function"==typeof e&&/native code/.test(e.toString())}var Q,ee="undefined"!=typeof Symbol&&Y(Symbol)&&"undefined"!=typeof Reflect&&Y(Reflect.ownKeys);Q="undefined"!=typeof Set&&Y(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var te=D,ne=0,re=function(){this.id=ne++,this.subs=[]};re.prototype.addSub=function(e){this.subs.push(e)},re.prototype.removeSub=function(e){u(this.subs,e)},re.prototype.depend=function(){re.target&&re.target.addDep(this
 )},re.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t<n;t++)e[t].update()},re.target=null;var oe=[];var ie=function(e,t,n,r,o,i,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},ae={child:{configurable:!0}};ae.child.get=function(){return this.componentInstance},Object.defineProperties(ie.prototype,ae);var se=function(e){void 0===e&&(e="");var t=new ie;return t.text=e,t.isComment=!0,t};function ce(e){return new ie(void 0,void 0,void 0,String(e))}var ue=Array.prototype,le=Object.create(ue);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(a){var s=ue[a];A(le,a,functio
 n(){for(var e=arguments,t=[],n=arguments.length;n--;)t[n]=e[n];var r,o=s.apply(this,t),i=this.__ob__;switch(a){case"push":case"unshift":r=t;break;case"splice":r=t.slice(2)}return r&&i.observeArray(r),i.dep.notify(),o})});var fe=Object.getOwnPropertyNames(le),pe={shouldConvert:!0},de=function(e){(this.value=e,this.dep=new re,this.vmCount=0,A(e,"__ob__",this),Array.isArray(e))?((J?he:ve)(e,le,fe),this.observeArray(e)):this.walk(e)};function he(e,t,n){e.__proto__=t}function ve(e,t,n){for(var r=0,o=n.length;r<o;r++){var i=n[r];A(e,i,t[i])}}function me(e,t){var n;if(b(e)&&!(e instanceof ie))return f(e,"__ob__")&&e.__ob__ instanceof de?n=e.__ob__:pe.shouldConvert&&!K()&&(Array.isArray(e)||l(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new de(e)),t&&n&&n.vmCount++,n}function ye(n,e,r,t,o){var i=new re,a=Object.getOwnPropertyDescriptor(n,e);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set,u=!o&&me(r);Object.defineProperty(n,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(n
 ):r;return re.target&&(i.depend(),u&&(u.dep.depend(),Array.isArray(e)&&function e(t){for(var n=void 0,r=0,o=t.length;r<o;r++)(n=t[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(e))),e},set:function(e){var t=s?s.call(n):r;e===t||e!=e&&t!=t||(c?c.call(n,e):r=e,u=!o&&me(e),i.notify())}})}}function ge(e,t,n){if(Array.isArray(e)&&i(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(ye(r.value,t,n),r.dep.notify(),n):e[t]=n}function _e(e,t){if(Array.isArray(e)&&i(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||f(e,t)&&(delete e[t],n&&n.dep.notify())}}de.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)ye(e,t[n],e[t[n]])},de.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)me(e[t])};var be=j.optionMergeStrategies;function we(e,t){if(!t)return e;for(var n,r,o,i=Object.keys(t),a=0;a<i.length;a++)r=e[n=i[a]],o=t[n],f(e,n)?l
 (r)&&l(o)&&we(r,o):ge(e,n,o);return e}function ke(n,r,o){return o?function(){var e="function"==typeof r?r.call(o,o):r,t="function"==typeof n?n.call(o,o):n;return e?we(e,t):t}:r?n?function(){return we("function"==typeof r?r.call(this,this):r,"function"==typeof n?n.call(this,this):n)}:r:n}function Se(e,t){return t?e?e.concat(t):Array.isArray(t)?t:[t]:e}function Ce(e,t,n,r){var o=Object.create(e||null);return t?N(o,t):o}be.data=function(e,t,n){return n?ke(e,t,n):t&&"function"!=typeof t?e:ke(e,t)},E.forEach(function(e){be[e]=Se}),x.forEach(function(e){be[e+"s"]=Ce}),be.watch=function(e,t,n,r){if(e===X&&(e=void 0),t===X&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var o={};for(var i in N(o,e),t){var a=o[i],s=t[i];a&&!Array.isArray(a)&&(a=[a]),o[i]=a?a.concat(s):Array.isArray(s)?s:[s]}return o},be.props=be.methods=be.inject=be.computed=function(e,t,n,r){if(!e)return t;var o=Object.create(null);return N(o,e),t&&N(o,t),o},be.provide=ke;var Oe=function(e,t){return void 0===t?e
 :t};function xe(n,r,o){"function"==typeof r&&(r=r.options),function(e,t){var n=e.props;if(n){var r,o,i={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(o=n[r])&&(i[h(o)]={type:null});else if(l(n))for(var a in n)o=n[a],i[h(a)]=l(o)?o:{type:o};e.props=i}}(r),function(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var o=0;o<n.length;o++)r[n[o]]={from:n[o]};else if(l(n))for(var i in n){var a=n[i];r[i]=l(a)?N({from:i},a):{from:a}}}}(r),function(e){var t=e.directives;if(t)for(var n in t){var r=t[n];"function"==typeof r&&(t[n]={bind:r,update:r})}}(r);var e=r.extends;if(e&&(n=xe(n,e,o)),r.mixins)for(var t=0,i=r.mixins.length;t<i;t++)n=xe(n,r.mixins[t],o);var a,s={};for(a in n)c(a);for(a in r)f(n,a)||c(a);function c(e){var t=be[e]||Oe;s[e]=t(n[e],r[e],o,e)}return s}function Ee(e,t,n,r){if("string"==typeof n){var o=e[t];if(f(o,n))return o[n];var i=h(n);if(f(o,i))return o[i];var a=v(i);return f(o,a)?o[a]:o[n]||o[i]||o[a]}}function je(e,t,n,r){var o=t[e],i=!f(n,e
 ),a=n[e];if($e(Boolean,o.type)&&(i&&!f(o,"default")?a=!1:$e(String,o.type)||""!==a&&a!==w(e)||(a=!0)),void 0===a){a=function(e,t,n){if(!f(t,"default"))return;var r=t.default;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return"function"==typeof r&&"Function"!==Ae(t.type)?r.call(e):r}(r,o,e);var s=pe.shouldConvert;pe.shouldConvert=!0,me(a),pe.shouldConvert=s}return a}function Ae(e){var t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function $e(e,t){if(!Array.isArray(t))return Ae(t)===Ae(e);for(var n=0,r=t.length;n<r;n++)if(Ae(t[n])===Ae(e))return!0;return!1}function Ie(e,t,n){if(t)for(var r=t;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i<o.length;i++)try{if(!1===o[i].call(r,e,t,n))return}catch(e){Te(e,r,"errorCaptured hook")}}Te(e,t,n)}function Te(e,t,n){if(j.errorHandler)try{return j.errorHandler.call(null,e,t,n)}catch(e){Me(e,null,"config.errorHandler")}Me(e,t,n)}function Me(e,t,n){if(!L&&!U||
 "undefined"==typeof console)throw e;console.error(e)}var Fe,Pe,Ne=[],De=!1;function Re(){De=!1;for(var e=Ne.slice(0),t=Ne.length=0;t<e.length;t++)e[t]()}var Ve=!1;if("undefined"!=typeof setImmediate&&Y(setImmediate))Pe=function(){setImmediate(Re)};else if("undefined"==typeof MessageChannel||!Y(MessageChannel)&&"[object MessageChannelConstructor]"!==MessageChannel.toString())Pe=function(){setTimeout(Re,0)};else{var Je=new MessageChannel,Le=Je.port2;Je.port1.onmessage=Re,Pe=function(){Le.postMessage(1)}}if("undefined"!=typeof Promise&&Y(Promise)){var Ue=Promise.resolve();Fe=function(){Ue.then(Re),H&&setTimeout(D)}}else Fe=Pe;function qe(e,t){var n;if(Ne.push(function(){if(e)try{e.call(t)}catch(e){Ie(e,t,"nextTick")}else n&&n(t)}),De||(De=!0,Ve?Pe():Fe()),!e&&"undefined"!=typeof Promise)return new Promise(function(e){n=e})}var ze=new Q;function Be(e){!function e(t,n){var r,o;var i=Array.isArray(t);if(!i&&!b(t)||Object.isFrozen(t))return;if(t.__ob__){var a=t.__ob__.dep.id;if(n.has(a))re
 turn;n.add(a)}if(i)for(r=t.length;r--;)e(t[r],n);else for(o=Object.keys(t),r=o.length;r--;)e(t[o[r]],n)}(e,ze),ze.clear()}var We,He=p(function(e){var t="&"===e.charAt(0),n="~"===(e=t?e.slice(1):e).charAt(0),r="!"===(e=n?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:n,capture:r,passive:t}});function Xe(e){function o(){var e=arguments,t=o.fns;if(!Array.isArray(t))return t.apply(null,arguments);for(var n=t.slice(),r=0;r<n.length;r++)n[r].apply(null,e)}return o.fns=e,o}function Ge(e,t,n,r,o){var i,a,s,c,u;for(i in e)a=s=e[i],c=t[i],u=He(i),l(a)&&(s=a.handler,u.params=a.params),$(s)||($(c)?($(s.fns)&&(s=e[i]=Xe(s)),n(u.name,s,u.once,u.capture,u.passive,u.params)):s!==c&&(c.fns=s,e[i]=c));for(i in t)$(e[i])&&r((u=He(i)).name,t[i],u.capture)}function Ke(e,t,n){var r;e instanceof ie&&(e=e.data.hook||(e.data.hook={}));var o=e[t];function i(){n.apply(this,arguments),u(r.fns,i)}$(o)?r=Xe([i]):I(o.fns)&&T(o.merged)?(r=o).fns.push(i):r=Xe([o,i]),r.merged=!0,e[t]=r}function Ze(e,t,n,r
 ,o){if(I(t)){if(f(t,n))return e[n]=t[n],o||delete t[n],!0;if(f(t,r))return e[n]=t[r],o||delete t[r],!0}return!1}function Ye(e){return M(e)?[ce(e)]:Array.isArray(e)?function e(t,n){var r=[];var o,i,a,s;for(o=0;o<t.length;o++)$(i=t[o])||"boolean"==typeof i||(a=r.length-1,s=r[a],Array.isArray(i)?0<i.length&&(Qe((i=e(i,(n||"")+"_"+o))[0])&&Qe(s)&&(r[a]=ce(s.text+i[0].text),i.shift()),r.push.apply(r,i)):M(i)?Qe(s)?r[a]=ce(s.text+i):""!==i&&r.push(ce(i)):Qe(i)&&Qe(s)?r[a]=ce(s.text+i.text):(T(t._isVList)&&I(i.tag)&&$(i.key)&&I(n)&&(i.key="__vlist"+n+"_"+o+"__"),r.push(i)));return r}(e):void 0}function Qe(e){return I(e)&&I(e.text)&&!1===e.isComment}function et(e,t){return(e.__esModule||ee&&"Module"===e[Symbol.toStringTag])&&(e=e.default),b(e)?t.extend(e):e}function tt(e){return e.isComment&&e.asyncFactory}function nt(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var n=e[t];if(I(n)&&(I(n.componentOptions)||tt(n)))return n}}function rt(e){e._events=Object.create(null),e._hasHookEvent=!1
 ;var t=e.$options._parentListeners;t&&at(e,t)}function ot(e,t,n){n?We.$once(e,t):We.$on(e,t)}function it(e,t){We.$off(e,t)}function at(e,t,n){We=e,Ge(t,n||{},ot,it),We=void 0}function st(e,t){var n={};if(!e)return n;for(var r=0,o=e.length;r<o;r++){var i=e[r],a=i.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,i.context!==t&&i.fnContext!==t||!a||null==a.slot)(n.default||(n.default=[])).push(i);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===i.tag?c.push.apply(c,i.children||[]):c.push(i)}}for(var u in n)n[u].every(ct)&&delete n[u];return n}function ct(e){return e.isComment&&!e.asyncFactory||" "===e.text}function ut(e,t){t=t||{};for(var n=0;n<e.length;n++)Array.isArray(e[n])?ut(e[n],t):t[e[n].key]=e[n].fn;return t}var lt=null;function ft(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!
 1,e._isDestroyed=!1,e._isBeingDestroyed=!1}function pt(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function dt(e,t){if(t){if(e._directInactive=!1,pt(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)dt(e.$children[n]);ht(e,"activated")}}function ht(t,n){var e=t.$options[n];if(e)for(var r=0,o=e.length;r<o;r++)try{e[r].call(t)}catch(e){Ie(e,t,n+" hook")}t._hasHookEvent&&t.$emit("hook:"+n)}var vt=[],mt=[],yt={},gt=!1,_t=!1,bt=0;function wt(){var e,t;for(_t=!0,vt.sort(function(e,t){return e.id-t.id}),bt=0;bt<vt.length;bt++)t=(e=vt[bt]).id,yt[t]=null,e.run();var n=mt.slice(),r=vt.slice();bt=vt.length=mt.length=0,yt={},gt=_t=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,dt(e[t],!0)}(n),function(e){var t=e.length;for(;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&ht(r,"updated")}}(r),Z&&j.devtools&&Z.emit("flush")}var kt=0,St=function(e,t,n,r,o){this.vm=e,o&&(e._watcher=thi
 s),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++kt,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new Q,this.newDepIds=new Q,this.expression="","function"==typeof t?this.getter=t:(this.getter=function(e){if(!P.test(e)){var n=e.split(".");return function(e){for(var t=0;t<n.length;t++){if(!e)return;e=e[n[t]]}return e}}}(t),this.getter||(this.getter=function(){})),this.value=this.lazy?void 0:this.get()};St.prototype.get=function(){var e,t;e=this,re.target&&oe.push(re.target),re.target=e;var n=this.vm;try{t=this.getter.call(n,n)}catch(e){if(!this.user)throw e;Ie(e,n,'getter for watcher "'+this.expression+'"')}finally{this.deep&&Be(t),re.target=oe.pop(),this.cleanupDeps()}return t},St.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},St.prototype.
 cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},St.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==yt[t]){if(yt[t]=!0,_t){for(var n=vt.length-1;bt<n&&vt[n].id>e.id;)n--;vt.splice(n+1,0,e)}else vt.push(e);gt||(gt=!0,qe(wt))}}(this)},St.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||b(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Ie(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},St.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},St.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},St.prototype.teardown=function(){if(this.active){th
 is.vm._isBeingDestroyed||u(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Ct={enumerable:!0,configurable:!0,get:D,set:D};function Ot(e,t,n){Ct.get=function(){return this[t][n]},Ct.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Ct)}function xt(e){e._watchers=[];var t=e.$options;t.props&&function(n,r){var o=n.$options.propsData||{},i=n._props={},a=n.$options._propKeys=[],e=!n.$parent;pe.shouldConvert=e;var t=function(e){a.push(e);var t=je(e,r,o,n);ye(i,e,t),e in n||Ot(n,"_props",e)};for(var s in r)t(s);pe.shouldConvert=!0}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]=null==t[n]?D:y(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;l(t=e._data="function"==typeof t?Et(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,o=(e.$options.methods,n.length);for(;o--;){var i=n[o];r&&f(r,i)||(void 0,36!==(a=(i+"").charCodeAt(0))&&95!==a&&Ot(e,"_data",i))}var a;me(t,!0)}(e):me(e._d
 ata={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=K();for(var o in t){var i=t[o],a="function"==typeof i?i:i.get;r||(n[o]=new St(e,a||D,D,jt)),o in e||At(e,o,i)}}(e,t.computed),t.watch&&t.watch!==X&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var o=0;o<r.length;o++)It(e,n,r[o]);else It(e,n,r)}}(e,t.watch)}function Et(e,t){try{return e.call(t,t)}catch(e){return Ie(e,t,"data()"),{}}}var jt={lazy:!0};function At(e,t,n){var r=!K();"function"==typeof n?(Ct.get=r?$t(t):n,Ct.set=D):(Ct.get=n.get?r&&!1!==n.cache?$t(t):n.get:D,Ct.set=n.set?n.set:D),Object.defineProperty(e,t,Ct)}function $t(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),re.target&&e.depend(),e.value}}function It(e,t,n,r){return l(n)&&(n=(r=n).handler),"string"==typeof n&&(n=e[n]),e.$watch(t,n,r)}function Tt(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}function Mt(t){var n=Ft(t
 .$options.inject,t);n&&(pe.shouldConvert=!1,Object.keys(n).forEach(function(e){ye(t,e,n[e])}),pe.shouldConvert=!0)}function Ft(t,e){if(t){for(var n=Object.create(null),r=ee?Reflect.ownKeys(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}):Object.keys(t),o=0;o<r.length;o++){for(var i=r[o],a=t[i].from,s=e;s;){if(s._provided&&a in s._provided){n[i]=s._provided[a];break}s=s.$parent}if(!s&&"default"in t[i]){var c=t[i].default;n[i]="function"==typeof c?c.call(e):c}}return n}}function Pt(e,t){var n,r,o,i,a;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),r=0,o=e.length;r<o;r++)n[r]=t(e[r],r);else if("number"==typeof e)for(n=new Array(e),r=0;r<e;r++)n[r]=t(r+1,r);else if(b(e))for(i=Object.keys(e),n=new Array(i.length),r=0,o=i.length;r<o;r++)a=i[r],n[r]=t(e[a],a,r);return I(n)&&(n._isVList=!0),n}function Nt(e,t,n,r){var o,i=this.$scopedSlots[e];if(i)n=n||{},r&&(n=N(N({},r),n)),o=i(n)||t;else{var a=this.$slots[e];a&&(a._rendered=!0),o=a||t}var s=n
 &&n.slot;return s?this.$createElement("template",{slot:s},o):o}function Dt(e){return Ee(this.$options,"filters",e)||S}function Rt(e,t,n,r){var o=j.keyCodes[t]||n;return o?Array.isArray(o)?-1===o.indexOf(e):o!==e:r?w(r)!==t:void 0}function Vt(n,r,o,i,a){if(o)if(b(o)){var s;Array.isArray(o)&&(o=function(e){for(var t={},n=0;n<e.length;n++)e[n]&&N(t,e[n]);return t}(o));var e=function(t){if("class"===t||"style"===t||c(t))s=n;else{var e=n.attrs&&n.attrs.type;s=i||j.mustUseProp(r,e,t)?n.domProps||(n.domProps={}):n.attrs||(n.attrs={})}t in s||(s[t]=o[t],a&&((n.on||(n.on={}))["update:"+t]=function(e){o[t]=e}))};for(var t in o)e(t)}else;return n}function Jt(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t||Ut(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),"__static__"+e,!1),r}function Lt(e,t,n){return Ut(e,"__once__"+t+(n?"_"+n:""),!0),e}function Ut(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&"string"!=typeof e[r]&&qt(e[r],t+"
 _"+r,n);else qt(e,t,n)}function qt(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function zt(e,t){if(t)if(l(t)){var n=e.on=e.on?N({},e.on):{};for(var r in t){var o=n[r],i=t[r];n[r]=o?[].concat(o,i):i}}else;return e}function Bt(e){e._o=Lt,e._n=n,e._s=t,e._l=Pt,e._t=Nt,e._q=C,e._i=O,e._m=Jt,e._f=Dt,e._k=Rt,e._b=Vt,e._v=ce,e._e=se,e._u=ut,e._g=zt}function Wt(e,t,n,i,r){var a=r.options;this.data=e,this.props=t,this.children=n,this.parent=i,this.listeners=e.on||_,this.injections=Ft(a.inject,i),this.slots=function(){return st(n,i)};var s=Object.create(i),o=T(a._compiled),c=!o;o&&(this.$options=a,this.$slots=this.slots(),this.$scopedSlots=e.scopedSlots||_),a._scopeId?this._c=function(e,t,n,r){var o=fn(s,e,t,n,r,c);return o&&!Array.isArray(o)&&(o.fnScopeId=a._scopeId,o.fnContext=i),o}:this._c=function(e,t,n,r){return fn(s,e,t,n,r,c)}}function Ht(e,t,n,r){e.fnContext=n,e.fnOptions=r,t.slot&&((e.data||(e.data={})).slot=t.slot)}function Xt(e,t){for(var n in t)e[h(n)]=t[n]}Bt(Wt.prototype);var Gt="@i
 nRecycleList";function Kt(e,t,n,r){if(o&&o.taskCenter)return"function"==typeof o.taskCenter.registerHook?o.taskCenter.registerHook(e,t,n,r):void 0}var Zt=0;function Yt(e){var t=e.$options.data,n=e.$options.computed||{},r=e._data?Object.assign({},e._data):"function"==typeof t?Et(t,e):t||{},o={};for(var i in n)o[i]=e[i];return Object.assign({},r,o)}function Qt(e){void 0===e&&(e={});var r=this,t=e.componentId;A(r,"_vmTemplate",e.vmTemplate),r._uid=t||"virtual-component-"+Zt++,r._isVue=!0,e&&e._isComponent?wn(r,e):r.$options=xe(kn(r.constructor),e||{},r),ft((r._renderProxy=r)._self=r),rt(r),pn(r),ht(r,"beforeCreate"),Mt(r),xt(r),Tt(r),ht(r,"created"),Kt(t,"lifecycle","attach",function(){ht(r,"beforeMount"),new St(r,function(){return Yt(r)},function(){return r._update(r._vnode,!1)}),r._isMounted=!0,ht(r,"mounted")}),Kt(t,"lifecycle","update",function(){r._update(r._vnode,!1)}),Kt(t,"lifecycle","syncState",function(e,t){if(l(t))for(var n in t)r[n]=t[n];return Yt(r)}),Kt(t,"lifecycle","det
 ach",function(){r.$destroy(),r._vmTemplate&&(r._vmTemplate.removeVirtualComponent(r._uid),delete r._vmTemplate)})}function en(e){var t=this,n=t.$options.componentId;(t._isMounted&&ht(t,"beforeUpdate"),t._vnode=e,t._isMounted&&n)&&function(e,t,n){if(o&&o.taskCenter)"function"==typeof o.taskCenter.updateData&&o.taskCenter.updateData(e,t,n)}(n,Yt(t),function(){ht(t,"updated")})}function tn(e){void 0===e&&(e={});var t=this;t._uid="virtual-component-template-"+Zt++,t._isVue=!0,e&&e._isComponent?wn(t,e):t.$options=xe(kn(t.constructor),e||{},t),rt(t._self=t),pn(t),xt(t),this.registerVirtualComponent()}function nn(e){var t,n,o,i;delete e.data.attrs[Gt],n=(t=e).componentOptions.Ctor,o=n.extend({}),i=o.prototype.$emit,o.prototype._init=Qt,o.prototype._update=en,o.prototype.$emit=function(){for(var e=arguments,t=[],n=arguments.length;n--;)t[n]=e[n];var r=this._uid,o=this._vmTemplate;return r&&o&&(t.push(r),i.apply(o,t)),i.apply(this,t)},t.componentOptions.Ctor=n.extend({methods:{registerVirtua
 lComponent:function(){var r=this;A(r,"_virtualComponents",{}),Kt(String(r._uid),"lifecycle","create",function(e,t){var n=new o({vmTemplate:r,componentId:e,propsData:t});return n._uid=e,r._virtualComponents&&(r._virtualComponents[e]=n),Yt(n)})},removeVirtualComponent:function(e){delete this._virtualComponents[e]}},destroyed:function(){delete this._virtualComponents}}),t.componentOptions.Ctor.prototype._init=tn,t.componentOptions.Ctor.prototype._update=D;var r=sn(e),a=r.$options["@render"];if(a)try{return a.call(r)}catch(e){Ie(e,r,"@render")}}var rn={init:function(e,t,n,r){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var o=e;rn.prepatch(o,o)}else{(e.componentInstance=sn(e,lt,n,r)).$mount(t?e.elm:void 0,t)}},prepatch:function(e,t){var n=t.componentOptions;!function(e,t,n,r,o){var i=!!(o||e.$options._renderChildren||r.data.scopedSlots||e.$scopedSlots!==_);if(e.$options._parentVnode=r,e.$vnode=r,e._vnode&&(e._vnode.parent=r),e.$options._renderChildren=o,e.
 $attrs=r.data.attrs||_,e.$listeners=n||_,t&&e.$options.props){pe.shouldConvert=!1;for(var a=e._props,s=e.$options._propKeys||[],c=0;c<s.length;c++){var u=s[c];a[u]=je(u,e.$options.props,t,e)}pe.shouldConvert=!0,e.$options.propsData=t}n=n||_;var l=e.$options._parentListeners;e.$options._parentListeners=n,at(e,n,l),i&&(e.$slots=st(o,r.context),e.$forceUpdate())}(t.componentInstance=e.componentInstance,n.propsData,n.listeners,t,n.children)},insert:function(e){var t,n=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,ht(r,"mounted")),e.data.keepAlive&&(n._isMounted?((t=r)._inactive=!1,mt.push(t)):dt(r,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(!(n&&(t._directInactive=!0,pt(t))||t._inactive)){t._inactive=!0;for(var r=0;r<t.$children.length;r++)e(t.$children[r]);ht(t,"deactivated")}}(t,!0):t.$destroy())}},on=Object.keys(rn);function an(e,t,n,r,o){if(!$(e)){var i=n.$options._base;if(b(e)&&(e=i.extend(e)),"function"=
 =typeof e){var a,s,c,u,l,f,p;if($(e.cid)&&void 0===(e=function(t,n,e){if(T(t.error)&&I(t.errorComp))return t.errorComp;if(I(t.resolved))return t.resolved;if(T(t.loading)&&I(t.loadingComp))return t.loadingComp;if(!I(t.contexts)){var r=t.contexts=[e],o=!0,i=function(){for(var e=0,t=r.length;e<t;e++)r[e].$forceUpdate()},a=R(function(e){t.resolved=et(e,n),o||i()}),s=R(function(e){I(t.errorComp)&&(t.error=!0,i())}),c=t(a,s);return b(c)&&("function"==typeof c.then?$(t.resolved)&&c.then(a,s):I(c.component)&&"function"==typeof c.component.then&&(c.component.then(a,s),I(c.error)&&(t.errorComp=et(c.error,n)),I(c.loading)&&(t.loadingComp=et(c.loading,n),0===c.delay?t.loading=!0:setTimeout(function(){$(t.resolved)&&$(t.error)&&(t.loading=!0,i())},c.delay||200)),I(c.timeout)&&setTimeout(function(){$(t.resolved)&&s(null)},c.timeout))),o=!1,t.loading?t.loadingComp:t.resolved}t.contexts.push(e)}(a=e,i,n)))return s=a,c=t,u=n,l=r,f=o,(p=se()).asyncFactory=s,p.asyncMeta={data:c,context:u,children:l,ta
 g:f},p;t=t||{},kn(e),I(t.model)&&function(e,t){var n=e.model&&e.model.prop||"value",r=e.model&&e.model.event||"input";(t.props||(t.props={}))[n]=t.model.value;var o=t.on||(t.on={});I(o[r])?o[r]=[t.model.callback].concat(o[r]):o[r]=t.model.callback}(e.options,t);var d=function(e,t,n){var r=t.options.props;if(!$(r)){var o={},i=e.attrs,a=e.props;if(I(i)||I(a))for(var s in r){var c=w(s);Ze(o,a,s,c,!0)||Ze(o,i,s,c,!1)}return o}}(t,e);if(T(e.options.functional))return function(e,t,n,r,o){var i=e.options,a={},s=i.props;if(I(s))for(var c in s)a[c]=je(c,s,t||_);else I(n.attrs)&&Xt(a,n.attrs),I(n.props)&&Xt(a,n.props);var u=new Wt(n,a,o,r,e),l=i.render.call(null,u._c,u);if(l instanceof ie)return Ht(l,n,r,i),l;if(Array.isArray(l)){for(var f=Ye(l)||[],p=0;p<f.length;p++)Ht(f[p],n,r,i);return f}}(e,d,t,n,r);var h=t.on;if(t.on=t.nativeOn,T(e.options.abstract)){var v=t.slot;t={},v&&(t.slot=v)}!function(e){e.hook||(e.hook={});for(var t=0;t<on.length;t++){var n=on[t],r=e.hook[n],o=rn[n];e.hook[n]=r?
 cn(o,r):o}}(t);var m,y=e.options.name||o,g=new ie("vue-component-"+e.cid+(y?"-"+y:""),t,void 0,void 0,void 0,n,{Ctor:e,propsData:d,listeners:h,tag:o,children:r},a);return(m=g).data.attrs&&Gt in m.data.attrs?nn(g):g}}}function sn(e,t,n,r){var o={_isComponent:!0,parent:t,_parentVnode:e,_parentElm:n||null,_refElm:r||null},i=e.data.inlineTemplate;return I(i)&&(o.render=i.render,o.staticRenderFns=i.staticRenderFns),new e.componentOptions.Ctor(o)}function cn(o,i){return function(e,t,n,r){o(e,t,n,r),i(e,t,n,r)}}var un=1,ln=2;function fn(e,t,n,r,o,i){return(Array.isArray(n)||M(n))&&(o=r,r=n,n=void 0),T(i)&&(o=ln),function(e,t,n,r,o){if(I(n)&&I(n.__ob__))return se();I(n)&&I(n.is)&&(t=n.is);if(!t)return se();Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);o===ln?r=Ye(r):o===un&&(r=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(r));var i,a;if("string"==typeof t){var s;a=e.$vnode&&e.$
 vnode.ns||j.getTagNamespace(t),i=j.isReservedTag(t)?new ie(j.parsePlatformTagName(t),n,r,void 0,void 0,e):I(s=Ee(e.$options,"components",t))?an(s,n,e,r,t):new ie(t,n,r,void 0,void 0,e)}else i=an(t,n,e,r);return Array.isArray(i)?i:I(i)?(I(a)&&function e(t,n,r){t.ns=n;"foreignObject"===t.tag&&(n=void 0,r=!0);if(I(t.children))for(var o=0,i=t.children.length;o<i;o++){var a=t.children[o];I(a.tag)&&($(a.ns)||T(r)&&"svg"!==a.tag)&&e(a,n,r)}}(i,a),I(n)&&function(e){b(e.style)&&Be(e.style);b(e.class)&&Be(e.class)}(n),i):se()}(e,t,n,r,o)}function pn(o){o._vnode=null,o._staticTrees=null;var e=o.$options,t=o.$vnode=e._parentVnode,n=t&&t.context;o.$slots=st(e._renderChildren,n),o.$scopedSlots=_,o._c=function(e,t,n,r){return fn(o,e,t,n,r,!1)},o.$createElement=function(e,t,n,r){return fn(o,e,t,n,r,!0)};var r=t&&t.data;ye(o,"$attrs",r&&r.attrs||_,0,!0),ye(o,"$listeners",e._parentListeners||_,0,!0)}var dn,hn,vn,mn,yn,gn,_n,bn=0;function wn(e,t){var n=e.$options=Object.create(e.constructor.options),r
 =t._parentVnode;n.parent=t.parent,n._parentVnode=r,n._parentElm=t._parentElm,n._refElm=t._refElm;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}function kn(e){var t=e.options;if(e.super){var n=kn(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.extendOptions,o=e.sealedOptions;for(var i in n)n[i]!==o[i]&&(t||(t={}),t[i]=Sn(n[i],r[i],o[i]));return t}(e);r&&N(e.extendOptions,r),(t=e.options=xe(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function Sn(e,t,n){if(Array.isArray(e)){var r=[];n=Array.isArray(n)?n:[n],t=Array.isArray(t)?t:[t];for(var o=0;o<e.length;o++)(0<=t.indexOf(e[o])||n.indexOf(e[o])<0)&&r.push(e[o]);return r}return e}function Cn(e){this._init(e)}function On(e){e.cid=0;var a=1;e.extend=function(e){e=e||{};var t=this,n=t.cid,r=e._Ctor||(e._Ctor={});if(r[n])return r[n];va
 r o=e.name||t.options.name,i=function(e){this._init(e)};return((i.prototype=Object.create(t.prototype)).constructor=i).cid=a++,i.options=xe(t.options,e),i.super=t,i.options.props&&function(e){var t=e.options.props;for(var n in t)Ot(e.prototype,"_props",n)}(i),i.options.computed&&function(e){var t=e.options.computed;for(var n in t)At(e.prototype,n,t[n])}(i),i.extend=t.extend,i.mixin=t.mixin,i.use=t.use,x.forEach(function(e){i[e]=t[e]}),o&&(i.options.components[o]=i),i.superOptions=t.options,i.extendOptions=e,i.sealedOptions=N({},i.options),r[n]=i}}function xn(e){return e&&(e.Ctor.options.name||e.tag)}function En(e,t){return Array.isArray(e)?-1<e.indexOf(t):"string"==typeof e?-1<e.split(",").indexOf(t):(n=e,"[object RegExp]"===r.call(n)&&e.test(t));var n}function jn(e,t){var n=e.cache,r=e.keys,o=e._vnode;for(var i in n){var a=n[i];if(a){var s=xn(a.componentOptions);s&&!t(s)&&An(n,i,r,o)}}}function An(e,t,n,r){var o=e[t];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),e[t]=null,u(
 n,t)}Cn.prototype._init=function(e){var t=this;t._uid=bn++,t._isVue=!0,e&&e._isComponent?wn(t,e):t.$options=xe(kn(t.constructor),e||{},t),ft((t._renderProxy=t)._self=t),rt(t),pn(t),ht(t,"beforeCreate"),Mt(t),xt(t),Tt(t),ht(t,"created"),t.$options.el&&t.$mount(t.$options.el)},dn=Cn,hn={get:function(){return this._data}},vn={get:function(){return this._props}},Object.defineProperty(dn.prototype,"$data",hn),Object.defineProperty(dn.prototype,"$props",vn),dn.prototype.$set=ge,dn.prototype.$delete=_e,dn.prototype.$watch=function(e,t,n){if(l(t))return It(this,e,t,n);(n=n||{}).user=!0;var r=new St(this,e,t,n);return n.immediate&&t.call(this,r.value),function(){r.teardown()}},yn=/^hook:/,(mn=Cn).prototype.$on=function(e,t){if(Array.isArray(e))for(var n=0,r=e.length;n<r;n++)this.$on(e[n],t);else(this._events[e]||(this._events[e]=[])).push(t),yn.test(e)&&(this._hasHookEvent=!0);return this},mn.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t
 ,n.$on(e,r),n},mn.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,o=e.length;r<o;r++)this.$off(e[r],t);return n}var i=n._events[e];if(!i)return n;if(!t)return n._events[e]=null,n;if(t)for(var a,s=i.length;s--;)if((a=i[s])===t||a.fn===t){i.splice(s,1);break}return n},mn.prototype.$emit=function(t){var n=this,e=n._events[t];if(e){e=1<e.length?g(e):e;for(var r=g(arguments,1),o=0,i=e.length;o<i;o++)try{e[o].apply(n,r)}catch(e){Ie(e,n,'event handler for "'+t+'"')}}return n},(gn=Cn).prototype._update=function(e,t){var n=this;n._isMounted&&ht(n,"beforeUpdate");var r=n.$el,o=n._vnode,i=lt;(lt=n)._vnode=e,o?n.$el=n.__patch__(o,e):(n.$el=n.__patch__(n.$el,e,t,!1,n.$options._parentElm,n.$options._refElm),n.$options._parentElm=n.$options._refElm=null),lt=i,r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},gn.prototype.$forceUpdate=function(){th
 is._watcher&&this._watcher.update()},gn.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){ht(e,"beforeDestroy"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||u(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),ht(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}},Bt((_n=Cn).prototype),_n.prototype.$nextTick=function(e){return qe(e,this)},_n.prototype._render=function(){var t,n=this,e=n.$options,r=e.render,o=e._parentVnode;o&&(n.$scopedSlots=o.data.scopedSlots||_),n.$vnode=o;try{t=r.call(n._renderProxy,n.$createElement)}catch(e){Ie(e,n,"render"),t=n._vnode}return t instanceof ie||(t=se()),t.parent=o,t};var $n,In,Tn,Mn=[String,RegExp,Array],Fn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:Mn,exclude:Mn,max:[String,Number]},created:function(){
 this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)An(this.cache,e,this.keys)},watch:{include:function(t){jn(this,function(e){return En(t,e)})},exclude:function(t){jn(this,function(e){return!En(t,e)})}},render:function(){var e=this.$slots.default,t=nt(e),n=t&&t.componentOptions;if(n){var r=xn(n),o=this.include,i=this.exclude;if(o&&(!r||!En(o,r))||i&&r&&En(i,r))return t;var a=this.cache,s=this.keys,c=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;a[c]?(t.componentInstance=a[c].componentInstance,u(s,c),s.push(c)):(a[c]=t,s.push(c),this.max&&s.length>parseInt(this.max)&&An(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};$n=Cn,Tn={get:function(){return j}},Object.defineProperty($n,"config",Tn),$n.util={warn:te,extend:N,mergeOptions:xe,defineReactive:ye},$n.set=ge,$n.delete=_e,$n.nextTick=qe,$n.options=Object.create(null),x.forEach(function(e){$n.options[e+"s"]=Object.create(null)}),N(($n.options._base=$n).options.components,Fn),
 $n.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(-1<t.indexOf(e))return this;var n=g(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this},$n.mixin=function(e){return this.options=xe(this.options,e),this},On($n),In=$n,x.forEach(function(n){In[n]=function(e,t){return t?("component"===n&&l(t)&&(t.name=t.name||e,t=this.options._base.extend(t)),"directive"===n&&"function"==typeof t&&(t={bind:t,update:t}),this.options[n+"s"][e]=t):this.options[n+"s"][e]}}),Object.defineProperty(Cn.prototype,"$isServer",{get:K}),Object.defineProperty(Cn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Cn.version="2.5.13";var Pn=1;function Nn(e){return o.createElement(e)}var Dn=Object.freeze({namespaceMap:{},createElement:Nn,createElementNS:function(e,t){return o.createElement(e+":"+t)},createTextNode:function(e){return new function(e){this.instanceId="",
 this.nodeId=Pn++,this.parentNode=null,this.nodeType=3,this.text=e}(e)},createComment:function(e){return o.createComment(e)},insertBefore:function(e,t,n){if(3!==t.nodeType)e.insertBefore(t,n);else if("text"===e.type)e.setAttr("value",t.text),t.parentNode=e;else{var r=Nn("text");r.setAttr("value",t.text),e.insertBefore(r,n)}},removeChild:function(e,t){3!==t.nodeType?e.removeChild(t):e.setAttr("value","")},appendChild:function(e,t){if(3!==t.nodeType)e.appendChild(t);else if("text"===e.type)e.setAttr("value",t.text),t.parentNode=e;else{var n=Nn("text");n.setAttr("value",t.text),e.appendChild(n)}},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.type},setTextContent:function(e,t){e.parentNode&&e.parentNode.setAttr("value",t)},setAttribute:function(e,t,n){e.setAttr(t,n)},setStyleScope:function(e,t){e.setAttr("@styleScope",t)}}),Rn={create:function(e,t){Vn(t)},update:function(e,t){e.data.ref!==t.data.ref&&(Vn(e,!0),Vn(t)
 )},destroy:function(e){Vn(e,!0)}};function Vn(e,t){var n=e.data.ref;if(n){var r=e.context,o=e.componentInstance||e.elm,i=r.$refs;t?Array.isArray(i[n])?u(i[n],o):i[n]===o&&(i[n]=void 0):e.data.refInFor?Array.isArray(i[n])?i[n].indexOf(o)<0&&i[n].push(o):i[n]=[o]:i[n]=o}}s("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),s("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,
 image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0);var Jn=s("text,number,password,search,email,tel,url"),Ln=new ie("",{},[]),Un=["create","activate","update","remove","destroy"];function qn(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&I(e.data)===I(t.data)&&function(e,t){if("input"!==e.tag)return!0;var n,r=I(n=e.data)&&I(n=n.attrs)&&n.type,o=I(n=t.data)&&I(n=n.attrs)&&n.type;return r===o||Jn(r)&&Jn(o)}(e,t)||T(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&$(t.asyncFactory.error))}function zn(e,t,n){var r,o,i={};for(r=t;r<=n;++r)I(o=e[r].key)&&(i[o]=r);return i}var Bn={create:Wn,update:Wn,destroy:function(e){Wn(e,Ln)}};function Wn(e,t){(e.data.directives||t.data.directives)&&function(t,n){var e,r,o,i=t===Ln,a=n===Ln,s=Xn(t.data.directives,t.context),c=Xn(n.data.directives,n.context),u=[],l=[];for(e in c)r=s[e],o=c[e],r?(o.oldValue=r.value,Gn(o,"update",n,t),o.def&&o.def.componentUp
 dated&&l.push(o)):(Gn(o,"bind",n,t),o.def&&o.def.inserted&&u.push(o));if(u.length){var f=function(){for(var e=0;e<u.length;e++)Gn(u[e],"inserted",n,t)};i?Ke(n,"insert",f):f()}l.length&&Ke(n,"postpatch",function(){for(var e=0;e<l.length;e++)Gn(l[e],"componentUpdated",n,t)});if(!i)for(e in s)c[e]||Gn(s[e],"unbind",t,t,a)}(e,t)}var Hn=Object.create(null);function Xn(e,t){var n,r,o,i=Object.create(null);if(!e)return i;for(n=0;n<e.length;n++)(r=e[n]).modifiers||(r.modifiers=Hn),(i[(o=r,o.rawName||o.name+"."+Object.keys(o.modifiers||{}).join("."))]=r).def=Ee(t.$options,"directives",r.name);return i}function Gn(t,n,r,e,o){var i=t.def&&t.def[n];if(i)try{i(r.elm,t,r,e,o)}catch(e){Ie(e,r.context,"directive "+t.name+" "+n+" hook")}}var Kn=[Rn,Bn];function Zn(e,t){if(e.data.attrs||t.data.attrs){var n,r,o=t.elm,i=e.data.attrs||{},a=t.data.attrs||{};a.__ob__&&(a=t.data.attrs=N({},a));var s="function"==typeof o.setAttrs,c={};for(n in a)r=a[n],i[n]!==r&&(s?c[n]=r:o.setAttr(n,r));for(n in i)null==a[
 n]&&(s?c[n]=void 0:o.setAttr(n));s&&o.setAttrs(c)}}var Yn={create:Zn,update:Zn};function Qn(e,t){var n=t.elm,r=t.context,o=t.data,i=e.data;if(o.staticClass||o.class||i&&(i.staticClass||i.class)){var a=[],s=i.staticClass;s&&a.push.apply(a,s),i.class&&a.push.apply(a,i.class);var c,u,l,f,p=[],d=o.staticClass;if(d&&p.push.apply(p,d),o.class&&p.push.apply(p,o.class),"function"==typeof n.setClassList)n.setClassList(p);else{var h=(c=a,u=p,l=r.$options.style||{},f={},u.forEach(function(e){var t=l[e];N(f,t)}),c.forEach(function(e){var t=l[e];for(var n in t)f.hasOwnProperty(n)||(f[n]="")}),f);if("function"==typeof n.setStyles)n.setStyles(h);else for(var v in h)n.setStyle(v,h[v])}}}var er,tr,nr={create:Qn,update:Qn};function rr(t,e,n,r,o,i){if(r)console.log("Weex do not support event in bubble phase.");else{if(n){var a=e,s=er;e=function(e){null!==(1===arguments.length?a(e):a.apply(null,arguments))&&or(t,null,null,s)}}if(tr&&tr._virtualComponents){er._context=tr;var c=e;e=function(){for(var e=a
 rguments,t=[],n=arguments.length;n--;)t[n]=e[n];var r=(t[0]||{}).componentId,o=this._context;r&&this._context&&(o=(this._context._virtualComponents||{})[r]||o);try{!function(e,t,n){void 0===n&&(n=null);var r=e.fns;if(!Array.isArray(r))return"function"==typeof r?r.apply(n,t):e.apply(n,t);for(var o=r.slice(),i=0;i<o.length;i++)o[i].apply(n,t)}(c,t,o)}catch(

<TRUNCATED>


[4/4] incubator-weex git commit: + [Core] Add string cache

Posted by ky...@apache.org.
+ [Core] Add string cache


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/641e3826
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/641e3826
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/641e3826

Branch: refs/heads/master
Commit: 641e3826e60825fba639f038fb3526e568658e15
Parents: d01f108
Author: YorkShen <sh...@gmail.com>
Authored: Thu May 24 11:20:07 2018 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Thu May 24 11:20:07 2018 +0800

----------------------------------------------------------------------
 .../gradle/wrapper/gradle-wrapper.properties    |   2 +-
 android/playground/app/build.gradle             |   2 +-
 android/sdk/assets/weex-main-jsfm.js            |   2 +-
 android/sdk/assets/weex-rax-api.js              |   2 +-
 .../java/com/taobao/weex/WXSDKInstance.java     |  14 ++
 .../java/com/taobao/weex/bridge/WXBridge.java   |  26 ++-
 .../com/taobao/weex/bridge/WXBridgeManager.java |  17 +-
 .../java/com/taobao/weex/common/IWXBridge.java  |   6 +-
 .../weex/ui/action/BasicComponentData.java      |  20 +-
 .../taobao/weex/ui/component/WXComponent.java   |   5 +-
 weex_core/Source/CMakeLists.txt                 |   1 +
 .../android/base/string/jstring_cache.cpp       |  70 +++++++
 .../Source/android/base/string/jstring_cache.h  |  46 +++++
 .../android/bridge/impl/bridge_impl_android.cpp | 196 +++++++------------
 .../android/bridge/impl/bridge_impl_android.h   |   2 +
 .../bridge/impl/weexcore_impl_android.cpp       |  69 +++----
 .../android/bridge/impl/weexcore_impl_android.h |   5 +-
 .../jniprebuild/jniheader/WXBridge_jni.h        |  16 +-
 weex_core/Source/core/layout/layout.h           |  10 +-
 .../core/render/manager/render_manager.cpp      |   2 +-
 .../Source/core/render/node/render_object.cpp   |  46 +++--
 .../Source/core/render/node/render_object.h     |  11 +-
 .../Source/core/render/page/render_page.cpp     |   2 -
 23 files changed, 322 insertions(+), 250 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/gradle/wrapper/gradle-wrapper.properties
----------------------------------------------------------------------
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 0f3279a..e21338c 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,4 +1,4 @@
-#Mon May 14 11:13:21 CST 2018
+#Mon Apr 23 15:37:25 CST 2018
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/641e3826/android/playground/app/build.gradle
----------------------------------------------------------------------
diff --git a/android/playground/app/build.gradle b/android/playground/app/build.gradle
index 82ec5c4..2caa695 100755
--- a/android/playground/app/build.gradle
+++ b/android/playground/app/build.gradle
@@ -99,7 +99,7 @@ dependencies {
 
     compile 'com.taobao.android:dexposed:0.1.8'
     compile 'com.loopj.android:android-async-http:1.4.9@aar'
-    compile 'com.facebook.fresco:fresco:0.12.0'
+    compile 'com.facebook.fresco:fresco:0.12.0+'
     compile 'com.facebook.fresco:animated-gif:0.12.0'
 
     compile 'com.squareup.okhttp:okhttp:2.3.0'