diff --git a/LICENSE b/LICENSE
index d404dba..4e776bc 100644
--- a/LICENSE
+++ b/LICENSE
@@ -287,180 +287,2040 @@
 This product bundles Android Open Source Project vandroid-4.2.2_r1, which is available under a "BSD" license. For details, see https://android.googlesource.com/platform/bionic/+/android-4.2.2_r1/libc/README and following files:
   weex_core/Source/IPC/futex.h
 
-This product bundles Webkit 2.17.4, which is available under a "BSD 2-clause" license. For details, reference https://webkit.org/licensing-webkit/ for license(Weex only uses the files under BSD license) and see https://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.17.4 for following files:
-   Files under: weex_core/Source/android/jsengine/dependence/
-      OptionsCommon.cmake
-      OptionsJSCOnly.cmake
-      WeexCommon.cmake
-      WeexFS.cmake
-      WeexFeatures.cmake
-      WeexHelpers.cmake
-      WeexMacros.cmake
+This product bundles Webkit 2.17.4, which is available under a "BSD 2-clause License", "BSD 3-clause License" or "MIT license". For details, reference https://webkit.org/licensing-webkit/ for license and see https://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.17.4 for following files:
 
-   Files under: weex_core/Source/android/jsengine/dependence/bmalloc
-      CMakeLists.txt
-      ChangeLog
-      Makefile
+   Bmalloc in WebKit:
+      weex_core/Source/android/jsengine/dependence/bmalloc:
+         CMakeLists.txt
+         ChangeLog
+         Makefile
 
-   Files under: weex_core/Source/android/jsengine/dependence/bmalloc/Configurations
-      Base.xcconfig
-      DebugRelease.xcconfig
-      bmalloc.xcconfig
-      mbmalloc.xcconfig
+      weex_core/Source/android/jsengine/dependence/bmalloc/Configurations:
+         Base.xcconfig
+         DebugRelease.xcconfig
+         bmalloc.xcconfig
+         mbmalloc.xcconfig
 
-   Files under: weex_core/Source/android/jsengine/dependence/bmalloc/bmalloc
-      Algorithm.h
-      Allocator.cpp
-      Allocator.h
-      AsyncTask.h
-      AvailableMemory.cpp
-      AvailableMemory.h
-      BAssert.h
-      BPlatform.h
-      BumpAllocator.h
-      BumpRange.h
-      Cache.cpp
-      Cache.h
-      Chunk.h
-      Deallocator.cpp
-      Deallocator.h
-      DebugHeap.cpp
-      DebugHeap.h
-      Environment.cpp
-      Environment.h
-      FixedVector.h
-      Heap.cpp
-      Heap.h
-      Inline.h
-      LargeMap.cpp
-      LargeMap.h
-      LargeRange.h
-      LineMetadata.h
-      List.h
-      Logging.cpp
-      Logging.h
-      Map.h
-      Mutex.h
-      Object.h
-      ObjectType.cpp
-      ObjectType.h
-      PerProcess.h
-      PerThread.h
-      Range.h
-      ScopeExit.h
-      Sizes.h
-      SmallLine.h
-      SmallPage.h
-      StaticMutex.cpp
-      StaticMutex.h
-      Syscall.h
-      VMAllocate.h
-      VMHeap.cpp
-      VMHeap.h
-      Vector.h
-      Zone.cpp
-      Zone.h
-      bmalloc.h
-      mbmalloc.cpp
+      weex_core/Source/android/jsengine/dependence/bmalloc/bmalloc:
+         Algorithm.h
+         Allocator.cpp
+         Allocator.h
+         AsyncTask.h
+         AvailableMemory.cpp
+         AvailableMemory.h
+         BAssert.h
+         BPlatform.h
+         BumpAllocator.h
+         BumpRange.h
+         Cache.cpp
+         Cache.h
+         Chunk.h
+         Deallocator.cpp
+         Deallocator.h
+         DebugHeap.cpp
+         DebugHeap.h
+         Environment.cpp
+         Environment.h
+         FixedVector.h
+         Heap.cpp
+         Heap.h
+         Inline.h
+         LargeMap.cpp
+         LargeMap.h
+         LargeRange.h
+         LineMetadata.h
+         List.h
+         Logging.cpp
+         Logging.h
+         Map.h
+         Mutex.h
+         Object.h
+         ObjectType.cpp
+         ObjectType.h
+         PerProcess.h
+         PerThread.h
+         Range.h
+         ScopeExit.h
+         Sizes.h
+         SmallLine.h
+         SmallPage.h
+         StaticMutex.cpp
+         StaticMutex.h
+         Syscall.h
+         VMAllocate.h
+         VMHeap.cpp
+         VMHeap.h
+         Vector.h
+         Zone.cpp
+         Zone.h
+         bmalloc.h
+         mbmalloc.cpp
 
-   Files under: weex_core/Source/android/jsengine/dependence/bmalloc/bmalloc/darwin
-      BSoftLinking.h
+      weex_core/Source/android/jsengine/dependence/bmalloc/bmalloc/darwin:
+         BSoftLinking.h
 
-   Files under: weex_core/Source/android/jsengine/dependence/bmalloc/bmalloc.xcodeproj
-      project.pbxproj
+      weex_core/Source/android/jsengine/dependence/bmalloc/bmalloc.xcodeproj:
+         project.pbxproj
 
-   Files under: weex_core/Source/android/jsengine/dependence/icu
-      LICENSE
-      README
+   ICU in WebKit:
+      weex_core/Source/android/jsengine/dependence/icu:
+         LICENSE
+         README
 
-   Files under: weex_core/Source/android/jsengine/dependence/icu/unicode
-      localpointer.h
-      parseerr.h
-      platform.h
-      ptypes.h
-      putil.h
-      ucal.h
-      uchar.h
-      ucnv.h
-      ucnv_err.h
-      ucol.h
-      uconfig.h
-      ucurr.h
-      udat.h
-      udatpg.h
-      udisplaycontext.h
-      uenum.h
-      uformattable.h
-      uiter.h
-      uloc.h
-      umachine.h
-      umisc.h
-      unorm.h
-      unorm2.h
-      unum.h
-      unumsys.h
-      urename.h
-      uscript.h
-      uset.h
-      ustring.h
-      utf.h
-      utf16.h
-      utf8.h
-      utf_old.h
-      utypes.h
-      uvernum.h
-      uversion.h
-      
+      weex_core/Source/android/jsengine/dependence/icu/unicode:
+         localpointer.h
+         parseerr.h
+         platform.h
+         ptypes.h
+         putil.h
+         ucal.h
+         uchar.h
+         ucnv.h
+         ucnv_err.h
+         ucol.h
+         uconfig.h
+         ucurr.h
+         udat.h
+         udatpg.h
+         udisplaycontext.h
+         uenum.h
+         uformattable.h
+         uiter.h
+         uloc.h
+         umachine.h
+         umisc.h
+         unorm.h
+         unorm2.h
+         unum.h
+         unumsys.h
+         urename.h
+         uscript.h
+         uset.h
+         ustring.h
+         utf.h
+         utf16.h
+         utf8.h
+         utf_old.h
+         utypes.h
+         uvernum.h
+         uversion.h
+   
+   WTF in WebKit:
+      weex_core/Source/include/wtf:
+         ASCIICType.h
+         Assertions.h
+         Atomics.h
+         AutodrainedPool.h
+         AutomaticThread.h
+         BackwardsGraph.h
+         Bag.h
+         BagToHashMap.h
+         BitVector.h
+         Bitmap.h
+         BlockObjCExceptions.h
+         BlockPtr.h
+         BlockStack.h
+         BloomFilter.h
+         Box.h
+         Brigand.h
+         BubbleSort.h
+         BumpPointerAllocator.h
+         ByteOrder.h
+         CheckedArithmetic.h
+         CheckedBoolean.h
+         ClockType.h
+         CommaPrinter.h
+         CompilationThread.h
+         Compiler.h
+         Condition.h
+         CrossThreadCopier.h
+         CrossThreadQueue.h
+         CrossThreadTask.h
+         CryptographicUtilities.h
+         CryptographicallyRandomNumber.h
+         CurrentTime.h
+         DataLog.h
+         DateMath.h
+         DecimalNumber.h
+         DeferrableRefCounted.h
+         DeprecatedOptional.h
+         Deque.h
+         DisallowCType.h
+         Dominators.h
+         DoublyLinkedList.h
+         EnumTraits.h
+         Expected.h
+         ExportMacros.h
+         FastBitVector.h
+         FastMalloc.h
+         FastTLS.h
+         FeatureDefines.h
+         FilePrintStream.h
+         FlipBytes.h
+         ForbidHeapAllocation.h
+         Forward.h
+         Function.h
+         FunctionDispatcher.h
+         GetPtr.h
+         GlobalVersion.h
+         GraphNodeWorklist.h
+         GregorianDateTime.h
+         HashCountedSet.h
+         HashFunctions.h
+         HashIterators.h
+         HashMap.h
+         HashMethod.h
+         HashSet.h
+         HashTable.h
+         HashTraits.h
+         Hasher.h
+         HexNumber.h
+         ICUCompatible.h
+         Indenter.h
+         IndexMap.h
+         IndexSet.h
+         IndexSparseSet.h
+         IndexedContainerIterator.h
+         InlineASM.h
+         Insertion.h
+         IteratorAdaptors.h
+         IteratorRange.h
+         LEBDecoder.h
+         ListDump.h
+         ListHashSet.h
+         Lock.h
+         LockAlgorithm.h
+         LockedPrintStream.h
+         Locker.h
+         LoggingAccumulator.h
+         LoggingHashID.h
+         LoggingHashMap.h
+         LoggingHashSet.h
+         LoggingHashTraits.h
+         MD5.h
+         MainThread.h
+         MallocPtr.h
+         MathExtras.h
+         MediaTime.h
+         MemoryFootprint.h
+         MemoryPressureHandler.h
+         MessageQueue.h
+         MetaAllocator.h
+         MetaAllocatorHandle.h
+         MonotonicTime.h
+         NakedPtr.h
+         NeverDestroyed.h
+         NoLock.h
+         Noncopyable.h
+         NumberOfCores.h
+         OSAllocator.h
+         OSObjectPtr.h
+         OSRandomSource.h
+         ObjcRuntimeExtras.h
+         OptionSet.h
+         Optional.h
+         OrderMaker.h
+         PackedIntVector.h
+         PageAllocation.h
+         PageBlock.h
+         PageReservation.h
+         ParallelHelperPool.h
+         ParallelJobs.h
+         ParallelJobsGeneric.h
+         ParallelJobsLibdispatch.h
+         ParallelJobsOpenMP.h
+         ParallelVectorIterator.h
+         ParkingLot.h
+         PassRefPtr.h
+         Platform.h
+         PlatformUserPreferredLanguages.h
+         PointerComparison.h
+         PrintStream.h
+         ProcessID.h
+         RAMSize.h
+         RandomNumber.h
+         RandomNumberSeed.h
+         RangeSet.h
+         RawPointer.h
+         RecursiveLockAdapter.h
+         RedBlackTree.h
+         Ref.h
+         RefCounted.h
+         RefCountedArray.h
+         RefCountedLeakCounter.h
+         RefCounter.h
+         RefPtr.h
+         RetainPtr.h
+         RunLoop.h
+         RunLoopTimer.h
+         SHA1.h
+         SaturatedArithmetic.h
+         SchedulePair.h
+         Scope.h
+         ScopedLambda.h
+         Seconds.h
+         SegmentedVector.h
+         SentinelLinkedList.h
+         SetForScope.h
+         SharedTask.h
+         SimpleStats.h
+         SinglyLinkedList.h
+         SixCharacterHash.h
+         SmallPtrSet.h
+         Spectrum.h
+         StackBounds.h
+         StackStats.h
+         StaticConstructors.h
+         StdLibExtras.h
+         Stopwatch.h
+         StreamBuffer.h
+         StringBuilder.h
+         StringExtras.h
+         StringHashDumpContext.h
+         StringPrintStream.h
+         SynchronizedFixedQueue.h
+         SystemTracing.h
+         ThreadFunctionInvocation.h
+         ThreadIdentifierDataPthreads.h
+         ThreadSafeRefCounted.h
+         ThreadSpecific.h
+         Threading.h
+         ThreadingPrimitives.h
+         TimeWithDynamicClockType.h
+         TinyLRUCache.h
+         TinyPtrSet.h
+         Trace.h
+         TriState.h
+         TypeCasts.h
+         UniStdExtras.h
+         UnionFind.h
+         UniqueRef.h
+         VMTags.h
+         ValueCheck.h
+         Variant.h
+         Vector.h
+         VectorTraits.h
+         WTFThreadData.h
+         WallTime.h
+         WeakPtr.h
+         WeakRandom.h
+         WindowsExtras.h
+         WordLock.h
+         WorkQueue.h
+         config.h
+         dtoa.h
+
+      weex_core/Source/include/wtf/icu:
+         ICUCompatible.h
+         unicode
+
+      weex_core/Source/include/wtf/icu/unicode:
+         bytestream.h
+         localpointer.h
+         parseerr.h
+         platform.h
+         ptypes.h
+         putil.h
+         rep.h
+         std_string.h
+         strenum.h
+         stringpiece.h
+         ubrk.h
+         uchar.h
+         ucnv.h
+         ucnv_err.h
+         ucol.h
+         uconfig.h
+         ucurr.h
+         uenum.h
+         uiter.h
+         uloc.h
+         umachine.h
+         unistr.h
+         unorm.h
+         unorm2.h
+         uobject.h
+         urename.h
+         uscript.h
+         uset.h
+         ustring.h
+         utext.h
+         utf.h
+         utf16.h
+         utf8.h
+         utf_old.h
+         utypes.h
+         uvernum.h
+         uversion.h
+
+      weex_core/Source/include/wtf/text:
+         ASCIIFastPath.h
+         AtomicString.h
+         AtomicStringHash.h
+         AtomicStringImpl.h
+         AtomicStringTable.h
+         Base64.h
+         CString.h
+         ConversionMode.h
+         IntegerToStringConversion.h
+         LChar.h
+         LineBreakIteratorPoolICU.h
+         NullTextBreakIterator.h
+         OrdinalNumber.h
+         StringBuffer.h
+         StringBuilder.h
+         StringCommon.h
+         StringConcatenate.h
+         StringConcatenateNumbers.h
+         StringHash.h
+         StringImpl.h
+         StringOperators.h
+         StringView.h
+         SymbolImpl.h
+         SymbolRegistry.h
+         TextBreakIterator.h
+         TextBreakIteratorInternalICU.h
+         TextPosition.h
+         UniquedStringImpl.h
+         WTFString.h
+
+      weex_core/Source/include/wtf/unicode:
+         WTFUTF8.h
+
+   JavaScriptCore in WebKit:
+      weex_core/Source/include/JavaScriptCore/API:
+         APICallbackFunction.h
+         APICast.h
+         APIUtils.h
+         JSAPIWrapperObject.h
+         JSBase.h
+         JSBasePrivate.h
+         JSCTestRunnerUtils.h
+         JSCallbackConstructor.h
+         JSCallbackFunction.h
+         JSCallbackObject.h
+         JSCallbackObjectFunctions.h
+         JSClassRef.h
+         JSContext.h
+         JSContextInternal.h
+         JSContextPrivate.h
+         JSContextRef.h
+         JSContextRefInspectorSupport.h
+         JSContextRefInternal.h
+         JSContextRefPrivate.h
+         JSExport.h
+         JSManagedValue.h
+         JSManagedValueInternal.h
+         JSObjectRef.h
+         JSObjectRefPrivate.h
+         JSRemoteInspector.h
+         JSRetainPtr.h
+         JSScriptRefPrivate.h
+         JSStringRef.h
+         JSStringRefBSTR.h
+         JSStringRefCF.h
+         JSStringRefPrivate.h
+         JSTypedArray.h
+         JSValue.h
+         JSValueInternal.h
+         JSValueRef.h
+         JSVirtualMachine.h
+         JSVirtualMachineInternal.h
+         JSWeakObjectMapRefInternal.h
+         JSWeakObjectMapRefPrivate.h
+         JSWrapperMap.h
+         JavaScript.h
+         JavaScriptCore.h
+         ObjCCallbackFunction.h
+         ObjcRuntimeExtras.h
+         OpaqueJSString.h
+         WebKitAvailability.h
+
+      weex_core/Source/include/JavaScriptCore/ForwardingHeaders/JavaScriptCore:
+         APICast.h
+         JSBase.h
+         JSCTestRunnerUtils.h
+         JSContextRef.h
+         JSObjectRef.h
+         JSObjectRefPrivate.h
+         JSRetainPtr.h
+         JSStringRef.h
+         JSStringRefCF.h
+         JSTypedArray.h
+         JSValueRef.h
+         JavaScript.h
+         JavaScriptCore.h
+         OpaqueJSString.h
+         WebKitAvailability.h
+
+      weex_core/Source/include/JavaScriptCore/assembler:
+         ARM64Assembler.h
+         ARMAssembler.h
+         ARMv7Assembler.h
+         AbortReason.h
+         AbstractMacroAssembler.h
+         AllowMacroScratchRegisterUsage.h
+         AssemblerBuffer.h
+         AssemblerBufferWithConstantPool.h
+         AssemblerCommon.h
+         CPU.h
+         CodeLocation.h
+         DisallowMacroScratchRegisterUsage.h
+         LinkBuffer.h
+         MIPSAssembler.h
+         MacroAssembler.h
+         MacroAssemblerARM.h
+         MacroAssemblerARM64.h
+         MacroAssemblerARMv7.h
+         MacroAssemblerCodeRef.h
+         MacroAssemblerHelpers.h
+         MacroAssemblerMIPS.h
+         MacroAssemblerPrinter.h
+         MacroAssemblerSH4.h
+         MacroAssemblerX86.h
+         MacroAssemblerX86Common.h
+         MacroAssemblerX86_64.h
+         MaxFrameExtentForSlowPathCall.h
+         SH4Assembler.h
+         X86Assembler.h
+
+      weex_core/Source/include/JavaScriptCore/bytecode:
+         AccessCase.h
+         AdaptiveInferredPropertyValueWatchpointBase.h
+         ArithProfile.h
+         ArrayAllocationProfile.h
+         ArrayProfile.h
+         ByValInfo.h
+         BytecodeBasicBlock.h
+         BytecodeConventions.h
+         BytecodeDumper.h
+         BytecodeGeneratorification.h
+         BytecodeGraph.h
+         BytecodeIntrinsicRegistry.h
+         BytecodeKills.h
+         BytecodeLivenessAnalysis.h
+         BytecodeLivenessAnalysisInlines.h
+         BytecodeRewriter.h
+         BytecodeUseDef.h
+         CallEdge.h
+         CallLinkInfo.h
+         CallLinkStatus.h
+         CallMode.h
+         CallReturnOffsetToBytecodeOffset.h
+         CallVariant.h
+         CodeBlock.h
+         CodeBlockHash.h
+         CodeBlockJettisoningWatchpoint.h
+         CodeBlockWithJITType.h
+         CodeOrigin.h
+         CodeType.h
+         ComplexGetStatus.h
+         DFGExitProfile.h
+         DOMJITAccessCasePatchpointParams.h
+         DataFormat.h
+         DeferredCompilationCallback.h
+         DeferredSourceDump.h
+         DirectEvalCodeCache.h
+         EvalCodeBlock.h
+         EvalCodeCache.h
+         ExecutableInfo.h
+         ExecutionCounter.h
+         ExitKind.h
+         ExitingJITType.h
+         ExpressionRangeInfo.h
+         FullBytecodeLiveness.h
+         FullCodeOrigin.h
+         FunctionCodeBlock.h
+         GetByIdStatus.h
+         GetByIdVariant.h
+         GetterSetterAccessCase.h
+         GlobalCodeBlock.h
+         HandlerInfo.h
+         InlineAccess.h
+         InlineCallFrame.h
+         InlineCallFrameSet.h
+         Instruction.h
+         InternalFunctionAllocationProfile.h
+         IntrinsicGetterAccessCase.h
+         JumpTable.h
+         LLIntCallLinkInfo.h
+         LLIntPrototypeLoadAdaptiveStructureWatchpoint.h
+         LazyOperandValueProfile.h
+         MethodOfGettingAValueProfile.h
+         ModuleNamespaceAccessCase.h
+         ModuleProgramCodeBlock.h
+         ObjectAllocationProfile.h
+         ObjectPropertyCondition.h
+         ObjectPropertyConditionSet.h
+         Opcode.h
+         Operands.h
+         OperandsInlines.h
+         PolymorphicAccess.h
+         PreciseJumpTargets.h
+         PreciseJumpTargetsInlines.h
+         ProgramCodeBlock.h
+         PropertyCondition.h
+         ProxyableAccessCase.h
+         PutByIdFlags.h
+         PutByIdStatus.h
+         PutByIdVariant.h
+         PutKind.h
+         ReduceWhitespace.h
+         SpecialPointer.h
+         SpeculatedType.h
+         StructureSet.h
+         StructureStubClearingWatchpoint.h
+         StructureStubInfo.h
+         SuperSampler.h
+         ToThisStatus.h
+         TrackedReferences.h
+         TypeLocation.h
+         UnlinkedCodeBlock.h
+         UnlinkedEvalCodeBlock.h
+         UnlinkedFunctionCodeBlock.h
+         UnlinkedFunctionExecutable.h
+         UnlinkedGlobalCodeBlock.h
+         UnlinkedInstructionStream.h
+         UnlinkedModuleProgramCodeBlock.h
+         UnlinkedProgramCodeBlock.h
+         ValueProfile.h
+         ValueRecovery.h
+         VariableWriteFireDetail.h
+         VirtualRegister.h
+         Watchpoint.h
+         WebAssemblyCodeBlock.h
+
+      weex_core/Source/include/JavaScriptCore/dfg:
+         DFGAbstractHeap.h
+         DFGAbstractInterpreter.h
+         DFGAbstractInterpreterInlines.h
+         DFGAbstractValue.h
+         DFGAdaptiveInferredPropertyValueWatchpoint.h
+         DFGAdaptiveStructureWatchpoint.h
+         DFGAdjacencyList.h
+         DFGAllocator.h
+         DFGArgumentPosition.h
+         DFGArgumentsEliminationPhase.h
+         DFGArgumentsUtilities.h
+         DFGArithMode.h
+         DFGArrayMode.h
+         DFGArrayifySlowPathGenerator.h
+         DFGAtTailAbstractState.h
+         DFGAvailability.h
+         DFGAvailabilityMap.h
+         DFGBackwardsCFG.h
+         DFGBackwardsDominators.h
+         DFGBackwardsPropagationPhase.h
+         DFGBasicBlock.h
+         DFGBasicBlockInlines.h
+         DFGBlockInsertionSet.h
+         DFGBlockMap.h
+         DFGBlockMapInlines.h
+         DFGBlockSet.h
+         DFGBlockSetInlines.h
+         DFGBlockWorklist.h
+         DFGBranchDirection.h
+         DFGByteCodeParser.h
+         DFGCFAPhase.h
+         DFGCFG.h
+         DFGCFGSimplificationPhase.h
+         DFGCPSRethreadingPhase.h
+         DFGCSEPhase.h
+         DFGCallArrayAllocatorSlowPathGenerator.h
+         DFGCallCreateDirectArgumentsSlowPathGenerator.h
+         DFGCapabilities.h
+         DFGCleanUpPhase.h
+         DFGClobberSet.h
+         DFGClobberize.h
+         DFGClobbersExitState.h
+         DFGCombinedLiveness.h
+         DFGCommon.h
+         DFGCommonData.h
+         DFGCompilationKey.h
+         DFGCompilationMode.h
+         DFGConstantFoldingPhase.h
+         DFGConstantHoistingPhase.h
+         DFGControlEquivalenceAnalysis.h
+         DFGCriticalEdgeBreakingPhase.h
+         DFGDCEPhase.h
+         DFGDOMJITPatchpointParams.h
+         DFGDesiredIdentifiers.h
+         DFGDesiredInferredType.h
+         DFGDesiredTransitions.h
+         DFGDesiredWatchpoints.h
+         DFGDesiredWeakReferences.h
+         DFGDisassembler.h
+         DFGDoesGC.h
+         DFGDominators.h
+         DFGDoubleFormatState.h
+         DFGDriver.h
+         DFGEdge.h
+         DFGEdgeDominates.h
+         DFGEdgeUsesStructure.h
+         DFGEpoch.h
+         DFGFailedFinalizer.h
+         DFGFiltrationResult.h
+         DFGFinalizer.h
+         DFGFixupPhase.h
+         DFGFlowIndexing.h
+         DFGFlowMap.h
+         DFGFlushFormat.h
+         DFGFlushedAt.h
+         DFGForAllKills.h
+         DFGFrozenValue.h
+         DFGGenerationInfo.h
+         DFGGraph.h
+         DFGGraphSafepoint.h
+         DFGHeapLocation.h
+         DFGInPlaceAbstractState.h
+         DFGInferredTypeCheck.h
+         DFGInlineCacheWrapper.h
+         DFGInlineCacheWrapperInlines.h
+         DFGInsertionSet.h
+         DFGIntegerCheckCombiningPhase.h
+         DFGIntegerRangeOptimizationPhase.h
+         DFGInvalidationPointInjectionPhase.h
+         DFGJITCode.h
+         DFGJITCompiler.h
+         DFGJITFinalizer.h
+         DFGJumpReplacement.h
+         DFGLICMPhase.h
+         DFGLazyJSValue.h
+         DFGLazyNode.h
+         DFGLiveCatchVariablePreservationPhase.h
+         DFGLivenessAnalysisPhase.h
+         DFGLongLivedState.h
+         DFGLoopPreHeaderCreationPhase.h
+         DFGMaximalFlushInsertionPhase.h
+         DFGMayExit.h
+         DFGMinifiedGraph.h
+         DFGMinifiedID.h
+         DFGMinifiedNode.h
+         DFGMovHintRemovalPhase.h
+         DFGMultiGetByOffsetData.h
+         DFGNaturalLoops.h
+         DFGNode.h
+         DFGNodeAbstractValuePair.h
+         DFGNodeAllocator.h
+         DFGNodeFlags.h
+         DFGNodeFlowProjection.h
+         DFGNodeOrigin.h
+         DFGNodeType.h
+         DFGNullAbstractState.h
+         DFGOSRAvailabilityAnalysisPhase.h
+         DFGOSREntry.h
+         DFGOSREntrypointCreationPhase.h
+         DFGOSRExit.h
+         DFGOSRExitBase.h
+         DFGOSRExitCompilationInfo.h
+         DFGOSRExitCompiler.h
+         DFGOSRExitCompilerCommon.h
+         DFGOSRExitFuzz.h
+         DFGOSRExitJumpPlaceholder.h
+         DFGOSRExitPreparation.h
+         DFGObjectAllocationSinkingPhase.h
+         DFGObjectMaterializationData.h
+         DFGOpInfo.h
+         DFGOperations.h
+         DFGPhantomInsertionPhase.h
+         DFGPhase.h
+         DFGPhiChildren.h
+         DFGPlan.h
+         DFGPlanInlines.h
+         DFGPrePostNumbering.h
+         DFGPreciseLocalClobberize.h
+         DFGPredictionInjectionPhase.h
+         DFGPredictionPropagationPhase.h
+         DFGPromotedHeapLocation.h
+         DFGPropertyTypeKey.h
+         DFGPureValue.h
+         DFGPutStackSinkingPhase.h
+         DFGRegisterBank.h
+         DFGRegisteredStructure.h
+         DFGRegisteredStructureSet.h
+         DFGSSACalculator.h
+         DFGSSAConversionPhase.h
+         DFGSSALoweringPhase.h
+         DFGSafeToExecute.h
+         DFGSafepoint.h
+         DFGSaneStringGetByValSlowPathGenerator.h
+         DFGScannable.h
+         DFGScoreBoard.h
+         DFGSilentRegisterSavePlan.h
+         DFGSlowPathGenerator.h
+         DFGSpeculativeJIT.h
+         DFGStackLayoutPhase.h
+         DFGStaticExecutionCountEstimationPhase.h
+         DFGStoreBarrierClusteringPhase.h
+         DFGStoreBarrierInsertionPhase.h
+         DFGStrengthReductionPhase.h
+         DFGStructureAbstractValue.h
+         DFGStructureClobberState.h
+         DFGStructureRegistrationPhase.h
+         DFGThreadData.h
+         DFGThunks.h
+         DFGTierUpCheckInjectionPhase.h
+         DFGToFTLDeferredCompilationCallback.h
+         DFGToFTLForOSREntryDeferredCompilationCallback.h
+         DFGTransition.h
+         DFGTypeCheckHoistingPhase.h
+         DFGUnificationPhase.h
+         DFGUseKind.h
+         DFGValidate.h
+         DFGValueSource.h
+         DFGValueStrength.h
+         DFGVarargsForwardingPhase.h
+         DFGVariableAccessData.h
+         DFGVariableAccessDataDump.h
+         DFGVariableEvent.h
+         DFGVariableEventStream.h
+         DFGVirtualRegisterAllocationPhase.h
+         DFGWatchpointCollectionPhase.h
+         DFGWorklist.h
+         DFGWorklistInlines.h
+
+      weex_core/Source/include/JavaScriptCore/disassembler:
+         Disassembler.h
+         UDis86Disassembler.h
+
+      weex_core/Source/include/JavaScriptCore/domjit:
+         DOMJITAbstractHeap.h
+         DOMJITCallDOMGetterPatchpoint.h
+         DOMJITEffect.h
+         DOMJITGetterSetter.h
+         DOMJITHeapRange.h
+         DOMJITPatchpoint.h
+         DOMJITPatchpointParams.h
+         DOMJITReg.h
+         DOMJITSignature.h
+         DOMJITSlowPathCalls.h
+         DOMJITValue.h
+
+      weex_core/Source/include/JavaScriptCore/heap:
+         AllocatingScope.h
+         AllocatorAttributes.h
+         CellContainer.h
+         CellContainerInlines.h
+         CellState.h
+         CodeBlockSet.h
+         CodeBlockSetInlines.h
+         CollectingScope.h
+         CollectionScope.h
+         CollectorPhase.h
+         ConservativeRoots.h
+         ConstraintVolatility.h
+         DeferGC.h
+         DeleteAllCodeEffort.h
+         DestructionMode.h
+         EdenGCActivityCallback.h
+         FreeList.h
+         FullGCActivityCallback.h
+         GCActivityCallback.h
+         GCAssertions.h
+         GCConductor.h
+         GCDeferralContext.h
+         GCDeferralContextInlines.h
+         GCIncomingRefCounted.h
+         GCIncomingRefCountedInlines.h
+         GCIncomingRefCountedSet.h
+         GCIncomingRefCountedSetInlines.h
+         GCLogging.h
+         GCSegmentedArray.h
+         GCSegmentedArrayInlines.h
+         GCTypeMap.h
+         Handle.h
+         HandleBlock.h
+         HandleBlockInlines.h
+         HandleSet.h
+         HandleStack.h
+         HandleTypes.h
+         Heap.h
+         HeapCell.h
+         HeapCellInlines.h
+         HeapHelperPool.h
+         HeapInlines.h
+         HeapIterationScope.h
+         HeapObserver.h
+         HeapProfiler.h
+         HeapRootVisitor.h
+         HeapSnapshot.h
+         HeapSnapshotBuilder.h
+         HeapStatistics.h
+         HeapTimer.h
+         HeapUtil.h
+         HelpingGCScope.h
+         IncrementalSweeper.h
+         JITStubRoutineSet.h
+         LargeAllocation.h
+         ListableHandler.h
+         LiveObjectData.h
+         LiveObjectList.h
+         Local.h
+         LocalScope.h
+         LockDuringMarking.h
+         MachineStackMarker.h
+         MarkStack.h
+         MarkedAllocator.h
+         MarkedAllocatorInlines.h
+         MarkedBlock.h
+         MarkedBlockInlines.h
+         MarkedBlockSet.h
+         MarkedSpace.h
+         MarkedSpaceInlines.h
+         MarkingConstraint.h
+         MarkingConstraintSet.h
+         MutatorScheduler.h
+         MutatorState.h
+         OpaqueRootSet.h
+         PreventCollectionScope.h
+         RegisterState.h
+         ReleaseHeapAccessScope.h
+         RunningScope.h
+         SlotVisitor.h
+         SlotVisitorInlines.h
+         SpaceTimeMutatorScheduler.h
+         StochasticSpaceTimeMutatorScheduler.h
+         StopIfNecessaryTimer.h
+         Strong.h
+         StrongInlines.h
+         Subspace.h
+         SubspaceInlines.h
+         SweepingScope.h
+         SynchronousStopTheWorldMutatorScheduler.h
+         TinyBloomFilter.h
+         UnconditionalFinalizer.h
+         VisitRaceKey.h
+         VisitingTimeout.h
+         Weak.h
+         WeakBlock.h
+         WeakHandleOwner.h
+         WeakImpl.h
+         WeakInlines.h
+         WeakReferenceHarvester.h
+         WeakSet.h
+         WeakSetInlines.h
+         WriteBarrierBuffer.h
+         WriteBarrierSupport.h
+
+      weex_core/Source/include/JavaScriptCore/inspector:
+         ScriptArguments.h
+         ScriptCallStackFactory.h
+
+      weex_core/Source/include/JavaScriptCore/interpreter:
+         AbstractPC.h
+         CLoopStack.h
+         CLoopStackInlines.h
+         CachedCall.h
+         CallFrame.h
+         CallFrameClosure.h
+         FrameTracers.h
+         Interpreter.h
+         InterpreterInlines.h
+         ProtoCallFrame.h
+         Register.h
+         ShadowChicken.h
+         ShadowChickenInlines.h
+         StackVisitor.h
+         VMEntryRecord.h
+
+      weex_core/Source/include/JavaScriptCore/jit:
+         AssemblyHelpers.h
+         BinarySwitch.h
+         CCallHelpers.h
+         CachedRecovery.h
+         CallFrameShuffleData.h
+         CallFrameShuffler.h
+         CompactJITCodeMap.h
+         ExecutableAllocationFuzz.h
+         ExecutableAllocator.h
+         FPRInfo.h
+         GCAwareJITStubRoutine.h
+         GPRInfo.h
+         HostCallReturnValue.h
+         ICStats.h
+         JIT.h
+         JITAddGenerator.h
+         JITBitAndGenerator.h
+         JITBitBinaryOpGenerator.h
+         JITBitOrGenerator.h
+         JITBitXorGenerator.h
+         JITCode.h
+         JITCompilationEffort.h
+         JITDisassembler.h
+         JITDivGenerator.h
+         JITExceptions.h
+         JITInlineCacheGenerator.h
+         JITInlines.h
+         JITLeftShiftGenerator.h
+         JITMathIC.h
+         JITMathICForwards.h
+         JITMathICInlineResult.h
+         JITMulGenerator.h
+         JITNegGenerator.h
+         JITOperations.h
+         JITRightShiftGenerator.h
+         JITStubRoutine.h
+         JITSubGenerator.h
+         JITThunks.h
+         JITToDFGDeferredCompilationCallback.h
+         JITWorklist.h
+         JSInterfaceJIT.h
+         PCToCodeOriginMap.h
+         PolymorphicCallStubRoutine.h
+         Reg.h
+         RegisterAtOffset.h
+         RegisterAtOffsetList.h
+         RegisterMap.h
+         RegisterSet.h
+         Repatch.h
+         ScratchRegisterAllocator.h
+         SetupVarargsFrame.h
+         SlowPathCall.h
+         SnippetOperand.h
+         SpecializedThunkJIT.h
+         SpillRegistersMode.h
+         TagRegistersMode.h
+         TempRegisterSet.h
+         ThunkGenerator.h
+         ThunkGenerators.h
+         UnusedPointer.h
+
+      weex_core/Source/include/JavaScriptCore/parser:
+         ASTBuilder.h
+         Lexer.h
+         ModuleAnalyzer.h
+         ModuleScopeData.h
+         NodeConstructors.h
+         Nodes.h
+         Parser.h
+         ParserArena.h
+         ParserError.h
+         ParserFunctionInfo.h
+         ParserModes.h
+         ParserTokens.h
+         ResultType.h
+         SourceCode.h
+         SourceCodeKey.h
+         SourceProvider.h
+         SourceProviderCache.h
+         SourceProviderCacheItem.h
+         SyntaxChecker.h
+         UnlinkedSourceCode.h
+         VariableEnvironment.h
+
+      weex_core/Source/include/JavaScriptCore/profiler:
+         ProfilerBytecode.h
+         ProfilerBytecodeSequence.h
+         ProfilerBytecodes.h
+         ProfilerCompilation.h
+         ProfilerCompilationKind.h
+         ProfilerCompiledBytecode.h
+         ProfilerDatabase.h
+         ProfilerEvent.h
+         ProfilerExecutionCounter.h
+         ProfilerJettisonReason.h
+         ProfilerOSRExit.h
+         ProfilerOSRExitSite.h
+         ProfilerOrigin.h
+         ProfilerOriginStack.h
+         ProfilerProfiledBytecodes.h
+         ProfilerUID.h
+
+      weex_core/Source/include/JavaScriptCore/runtime:
+         AbstractModuleRecord.h
+         ArgList.h
+         ArgumentsMode.h
+         ArityCheckMode.h
+         ArrayBuffer.h
+         ArrayBufferNeuteringWatchpoint.h
+         ArrayBufferSharingMode.h
+         ArrayBufferView.h
+         ArrayConstructor.h
+         ArrayConventions.h
+         ArrayIteratorAdaptiveWatchpoint.h
+         ArrayIteratorPrototype.h
+         ArrayPrototype.h
+         ArrayStorage.h
+         AsyncFunctionConstructor.h
+         AsyncFunctionPrototype.h
+         AtomicsObject.h
+         AuxiliaryBarrier.h
+         AuxiliaryBarrierInlines.h
+         BasicBlockLocation.h
+         BatchedTransitionOptimizer.h
+         BigInteger.h
+         BooleanConstructor.h
+         BooleanObject.h
+         BooleanPrototype.h
+         BundlePath.h
+         Butterfly.h
+         ButterflyInlines.h
+         CallData.h
+         CatchScope.h
+         ClassInfo.h
+         ClonedArguments.h
+         CodeCache.h
+         CodeSpecializationKind.h
+         CommonIdentifiers.h
+         CommonSlowPaths.h
+         CommonSlowPathsExceptions.h
+         CompilationResult.h
+         Completion.h
+         ConcurrentJITLock.h
+         ConcurrentJSLock.h
+         ConfigFile.h
+         ConsoleClient.h
+         ConsoleObject.h
+         ConsoleTypes.h
+         ConstantMode.h
+         ConstructAbility.h
+         ConstructData.h
+         ControlFlowProfiler.h
+         CustomGetterSetter.h
+         DataView.h
+         DateConstructor.h
+         DateConversion.h
+         DateInstance.h
+         DateInstanceCache.h
+         DatePrototype.h
+         DefinePropertyAttributes.h
+         DirectArguments.h
+         DirectArgumentsOffset.h
+         DirectEvalExecutable.h
+         DumpContext.h
+         ECMAScriptSpecInternalFunctions.h
+         EnumerationMode.h
+         Error.h
+         ErrorConstructor.h
+         ErrorHandlingScope.h
+         ErrorInstance.h
+         ErrorPrototype.h
+         EvalExecutable.h
+         Exception.h
+         ExceptionEventLocation.h
+         ExceptionFuzz.h
+         ExceptionHelpers.h
+         ExceptionScope.h
+         ExecutableBase.h
+         Float32Array.h
+         Float64Array.h
+         FunctionConstructor.h
+         FunctionExecutable.h
+         FunctionExecutableDump.h
+         FunctionHasExecutedCache.h
+         FunctionPrototype.h
+         FunctionRareData.h
+         GeneratorFunctionConstructor.h
+         GeneratorFunctionPrototype.h
+         GeneratorPrototype.h
+         GenericArguments.h
+         GenericArgumentsInlines.h
+         GenericOffset.h
+         GenericTypedArrayView.h
+         GenericTypedArrayViewInlines.h
+         GetPutInfo.h
+         GetterSetter.h
+         HasOwnPropertyCache.h
+         HashMapImpl.h
+         Identifier.h
+         IdentifierInlines.h
+         IndexingHeader.h
+         IndexingHeaderInlines.h
+         IndexingType.h
+         IndirectEvalExecutable.h
+         InferredType.h
+         InferredTypeTable.h
+         InferredValue.h
+         InitializeThreading.h
+         InspectorInstrumentationObject.h
+         Int16Array.h
+         Int32Array.h
+         Int8Array.h
+         IntegralTypedArrayBase.h
+         InternalFunction.h
+         IntlCollator.h
+         IntlCollatorConstructor.h
+         IntlCollatorPrototype.h
+         IntlDateTimeFormat.h
+         IntlDateTimeFormatConstructor.h
+         IntlDateTimeFormatPrototype.h
+         IntlNumberFormat.h
+         IntlNumberFormatConstructor.h
+         IntlNumberFormatPrototype.h
+         IntlObject.h
+         IntlObjectInlines.h
+         Intrinsic.h
+         IterationKind.h
+         IterationStatus.h
+         IteratorOperations.h
+         IteratorPrototype.h
+         JSAPIValueWrapper.h
+         JSArray.h
+         JSArrayBuffer.h
+         JSArrayBufferConstructor.h
+         JSArrayBufferPrototype.h
+         JSArrayBufferView.h
+         JSArrayBufferViewInlines.h
+         JSArrayInlines.h
+         JSAsyncFunction.h
+         JSBoundFunction.h
+         JSCInlines.h
+         JSCJSValue.h
+         JSCJSValueInlines.h
+         JSCallee.h
+         JSCell.h
+         JSCellInlines.h
+         JSCustomGetterSetterFunction.h
+         JSDataView.h
+         JSDataViewPrototype.h
+         JSDateMath.h
+         JSDestructibleObject.h
+         JSDestructibleObjectSubspace.h
+         JSEnvironmentRecord.h
+         JSExportMacros.h
+         JSFixedArray.h
+         JSFloat32Array.h
+         JSFloat64Array.h
+         JSFunction.h
+         JSFunctionInlines.h
+         JSGeneratorFunction.h
+         JSGenericTypedArrayView.h
+         JSGenericTypedArrayViewConstructor.h
+         JSGenericTypedArrayViewConstructorInlines.h
+         JSGenericTypedArrayViewInlines.h
+         JSGenericTypedArrayViewPrototype.h
+         JSGenericTypedArrayViewPrototypeFunctions.h
+         JSGenericTypedArrayViewPrototypeInlines.h
+         JSGlobalLexicalEnvironment.h
+         JSGlobalObject.h
+         JSGlobalObjectDebuggable.h
+         JSGlobalObjectFunctions.h
+         JSGlobalObjectInlines.h
+         JSInt16Array.h
+         JSInt32Array.h
+         JSInt8Array.h
+         JSInternalPromise.h
+         JSInternalPromiseConstructor.h
+         JSInternalPromiseDeferred.h
+         JSInternalPromisePrototype.h
+         JSJob.h
+         JSLexicalEnvironment.h
+         JSLock.h
+         JSMap.h
+         JSMapIterator.h
+         JSModuleEnvironment.h
+         JSModuleLoader.h
+         JSModuleNamespaceObject.h
+         JSModuleRecord.h
+         JSNativeStdFunction.h
+         JSONObject.h
+         JSObject.h
+         JSObjectInlines.h
+         JSPromise.h
+         JSPromiseConstructor.h
+         JSPromiseDeferred.h
+         JSPromisePrototype.h
+         JSPropertyNameEnumerator.h
+         JSPropertyNameIterator.h
+         JSProxy.h
+         JSScope.h
+         JSScriptFetcher.h
+         JSSegmentedVariableObject.h
+         JSSegmentedVariableObjectSubspace.h
+         JSSet.h
+         JSSetIterator.h
+         JSSourceCode.h
+         JSString.h
+         JSStringBuilder.h
+         JSStringInlines.h
+         JSStringIterator.h
+         JSStringJoiner.h
+         JSStringSubspace.h
+         JSSymbolTableObject.h
+         JSTemplateRegistryKey.h
+         JSType.h
+         JSTypeInfo.h
+         JSTypedArrayConstructors.h
+         JSTypedArrayPrototypes.h
+         JSTypedArrayViewConstructor.h
+         JSTypedArrayViewPrototype.h
+         JSTypedArrays.h
+         JSUint16Array.h
+         JSUint32Array.h
+         JSUint8Array.h
+         JSUint8ClampedArray.h
+         JSWeakMap.h
+         JSWeakSet.h
+         JSWithScope.h
+         JSWrapperObject.h
+         LazyClassStructure.h
+         LazyClassStructureInlines.h
+         LazyProperty.h
+         LazyPropertyInlines.h
+         LiteralParser.h
+         Lookup.h
+         MachineContext.h
+         MapBase.h
+         MapConstructor.h
+         MapIteratorPrototype.h
+         MapPrototype.h
+         MatchResult.h
+         MathCommon.h
+         MathObject.h
+         MemoryStatistics.h
+         Microtask.h
+         ModuleLoaderPrototype.h
+         ModuleProgramExecutable.h
+         NativeErrorConstructor.h
+         NativeErrorPrototype.h
+         NativeExecutable.h
+         NativeStdFunctionCell.h
+         NullGetterFunction.h
+         NullSetterFunction.h
+         NumberConstructor.h
+         NumberObject.h
+         NumberPrototype.h
+         NumericStrings.h
+         ObjectConstructor.h
+         ObjectPrototype.h
+         Operations.h
+         Options.h
+         ParseInt.h
+         PlatformThread.h
+         PrivateName.h
+         ProgramExecutable.h
+         PropertyDescriptor.h
+         PropertyMapHashTable.h
+         PropertyName.h
+         PropertyNameArray.h
+         PropertyOffset.h
+         PropertySlot.h
+         PropertyStorage.h
+         Protect.h
+         PrototypeMap.h
+         PrototypeMapInlines.h
+         ProxyConstructor.h
+         ProxyObject.h
+         ProxyRevoke.h
+         PureNaN.h
+         PutDirectIndexMode.h
+         PutPropertySlot.h
+         ReflectObject.h
+         RegExp.h
+         RegExpCache.h
+         RegExpCachedResult.h
+         RegExpConstructor.h
+         RegExpInlines.h
+         RegExpKey.h
+         RegExpMatchesArray.h
+         RegExpObject.h
+         RegExpObjectInlines.h
+         RegExpPrototype.h
+         RuntimeFlags.h
+         RuntimeType.h
+         SamplingCounter.h
+         SamplingProfiler.h
+         ScopeOffset.h
+         ScopedArguments.h
+         ScopedArgumentsTable.h
+         ScriptExecutable.h
+         ScriptFetcher.h
+         SetConstructor.h
+         SetIteratorPrototype.h
+         SetPrototype.h
+         SimpleTypedArrayController.h
+         SlowPathReturnType.h
+         SmallStrings.h
+         SourceOrigin.h
+         SparseArrayValueMap.h
+         StackAlignment.h
+         StackFrame.h
+         StrictEvalActivation.h
+         StringConstructor.h
+         StringIteratorPrototype.h
+         StringObject.h
+         StringPrototype.h
+         StringRecursionChecker.h
+         Structure.h
+         StructureChain.h
+         StructureIDBlob.h
+         StructureIDTable.h
+         StructureInlines.h
+         StructureRareData.h
+         StructureRareDataInlines.h
+         StructureTransitionTable.h
+         Symbol.h
+         SymbolConstructor.h
+         SymbolObject.h
+         SymbolPrototype.h
+         SymbolTable.h
+         TemplateRegistry.h
+         TemplateRegistryKey.h
+         TemplateRegistryKeyTable.h
+         TestRunnerUtils.h
+         ThrowScope.h
+         ToNativeFromValue.h
+         TypeError.h
+         TypeLocationCache.h
+         TypeProfiler.h
+         TypeProfilerLog.h
+         TypeSet.h
+         TypedArrayAdaptors.h
+         TypedArrayBase.h
+         TypedArrayController.h
+         TypedArrayInlines.h
+         TypedArrayType.h
+         TypedArrays.h
+         TypeofType.h
+         Uint16Array.h
+         Uint16WithFraction.h
+         Uint32Array.h
+         Uint8Array.h
+         Uint8ClampedArray.h
+         VM.h
+         VMEntryScope.h
+         VMInlines.h
+         VMTraps.h
+         VarOffset.h
+         Watchdog.h
+         WeakGCMap.h
+         WeakGCMapInlines.h
+         WeakMapConstructor.h
+         WeakMapData.h
+         WeakMapPrototype.h
+         WeakSetConstructor.h
+         WeakSetPrototype.h
+         WebAssemblyExecutable.h
+         WriteBarrier.h
+         WriteBarrierInlines.h
+
+      weex_core/Source/include/JavaScriptCore/yarr:
+         RegularExpression.h
+         Yarr.h
+         YarrCanonicalize.h
+         YarrInterpreter.h
+         YarrJIT.h
+         YarrParser.h
+         YarrPattern.h
+         YarrSyntaxChecker.h
+
+   Other files in Webkit:
+      weex_core/Source/android/jsengine/dependence:
+         OptionsCommon.cmake
+         OptionsJSCOnly.cmake
+         WeexCommon.cmake
+         WeexFS.cmake
+         WeexFeatures.cmake
+         WeexHelpers.cmake
+         WeexMacros.cmake
+
    The copyright for files above is listed below:
 
-      COPYRIGHT AND PERMISSION NOTICE
+      weex_core/Source/include/wtf/Brigand.h:
+         // Brigand library
+         //
+         // Copyright (c) 2015 Edouard Alligand and Joel Falcou
+         //
+         // Boost Software License - Version 1.0 - August 17th, 2003
+         //
+         // Permission is hereby granted, free of charge, to any person or organization
+         // obtaining a copy of the software and accompanying documentation covered by
+         // this license (the "Software") to use, reproduce, display, distribute,
+         // execute, and transmit the Software, and to prepare derivative works of the
+         // Software, and to permit third-parties to whom the Software is furnished to
+         // do so, all subject to the following:
+         //
+         // The copyright notices in the Software and this entire statement, including
+         // the above license grant, this restriction and the following disclaimer,
+         // must be included in all copies of the Software, in whole or in part, and
+         // all derivative works of the Software, unless such copies or derivative
+         // works are solely in the form of machine-executable object code generated by
+         // a source language processor.
+         //
+         // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+         // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+         // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+         // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+         // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+         // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+         // DEALINGS IN THE SOFTWARE.
 
-      Copyright (c) 1995-2006 International Business Machines Corporation and others
+         // This file contains a standalone version of Edouard Alligand and Joel Falcou's 
+         // Brigand library, which can be found at https://github.com/edouarda/brigand
 
-      All rights reserved.
+      weex_core/Source/include/wtf/Optional.h:
+         // Copyright (C) 2011 - 2012 Andrzej Krzemienski.
+         //
+         // Use, modification, and distribution is subject to the Boost Software
+         // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+         // http://www.boost.org/LICENSE_1_0.txt)
+         //
+         // The idea and interface is based on Boost.Optional library
+         // authored by Fernando Luis Cacciola Carballal
+         //
+         // Boost Software License - Version 1.0 - August 17th, 2003
+         //
+         // Permission is hereby granted, free of charge, to any person or organization
+         // obtaining a copy of the software and accompanying documentation covered by
+         // this license (the "Software") to use, reproduce, display, distribute,
+         // execute, and transmit the Software, and to prepare derivative works of the
+         // Software, and to permit third-parties to whom the Software is furnished to
+         // do so, all subject to the following:
+         //
+         // The copyright notices in the Software and this entire statement, including
+         // the above license grant, this restriction and the following disclaimer,
+         // must be included in all copies of the Software, in whole or in part, and
+         // all derivative works of the Software, unless such copies or derivative
+         // works are solely in the form of machine-executable object code generated by
+         // a source language processor.
+         //
+         // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+         // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+         // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+         // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+         // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+         // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+         // DEALINGS IN THE SOFTWARE.
 
-      Permission is hereby granted, free of charge, to any person obtaining a copy of this
-      software and associated documentation files (the "Software"), to deal in the Software
-      without restriction, including without limitation the rights to use, copy, modify,
-      merge, publish, distribute, and/or sell copies of the Software, and to permit persons
-      to whom the Software is furnished to do so, provided that the above copyright notice(s)
-      and this permission notice appear in all copies of the Software and that both the above
-      copyright notice(s) and this permission notice appear in supporting documentation.
+         // Copied from https://github.com/akrzemi1/Optional (727c729dd1d9f06f225868280e50154594d7e59d)
 
-      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-      INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-      PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER
-      OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR
-      CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-      PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-      OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+         // Modified to make it compile with exceptions disabled.
 
-      Except as contained in this notice, the name of a copyright holder shall not be used in
-      advertising or otherwise to promote the sale, use or other dealings in this Software
-      without prior written authorization of the copyright holder.
+      weex_core/Source/include/wtf/Variant.h:
+         // Copyright (c) 2015, Just Software Solutions Ltd
+         // All rights reserved.
+         //
+         // Redistribution and use in source and binary forms, with or
+         // without modification, are permitted provided that the
+         // following conditions are met:
+         //
+         // 1. Redistributions of source code must retain the above
+         // copyright notice, this list of conditions and the following
+         // disclaimer.
+         //
+         // 2. Redistributions in binary form must reproduce the above
+         // copyright notice, this list of conditions and the following
+         // disclaimer in the documentation and/or other materials
+         // provided with the distribution.
+         //
+         // 3. Neither the name of the copyright holder nor the names of
+         // its contributors may be used to endorse or promote products
+         // derived from this software without specific prior written
+         // permission.
+         //
+         // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+         // CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+         // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+         // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+         // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+         // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+         // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+         // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+         // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+         // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+         // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+         // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+         // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+         // Copied from https://bitbucket.org/anthonyw/variant/src (5bce47fa788648f79e5ea1d77b0eef2e8f0b2999)
 
-      /*
-      * Copyright (C) 2016 Apple Inc. All rights reserved.
-      *
-      * Redistribution and use in source and binary forms, with or without
-      * modification, are permitted provided that the following conditions
-      * are met:
-      * 1. Redistributions of source code must retain the above copyright
-      *    notice, this list of conditions and the following disclaimer.
-      * 2. Redistributions in binary form must reproduce the above copyright
-      *    notice, this list of conditions and the following disclaimer in the
-      *    documentation and/or other materials provided with the distribution.
-      *
-      * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
-      * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-      * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-      * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
-      * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-      * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-      * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-      * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-      * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-      * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-      * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-      */
\ No newline at end of file
+         // Modified to make it compile with exceptions disabled
+
+      weex_core/Source/android/jsengine/dependence/icu:
+      weex_core/Source/include/wtf/icu/unicode:
+      weex_core/Source/base/third_party/icu:
+         COPYRIGHT AND PERMISSION NOTICE
+
+         Copyright (c) 1995-2006 International Business Machines Corporation and others
+
+         All rights reserved.
+
+         Permission is hereby granted, free of charge, to any person obtaining a copy of this
+         software and associated documentation files (the "Software"), to deal in the Software
+         without restriction, including without limitation the rights to use, copy, modify,
+         merge, publish, distribute, and/or sell copies of the Software, and to permit persons
+         to whom the Software is furnished to do so, provided that the above copyright notice(s)
+         and this permission notice appear in all copies of the Software and that both the above
+         copyright notice(s) and this permission notice appear in supporting documentation.
+
+         THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+         INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+         PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER
+         OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR
+         CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+         PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+         OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+         Except as contained in this notice, the name of a copyright holder shall not be used in
+         advertising or otherwise to promote the sale, use or other dealings in this Software
+         without prior written authorization of the copyright holder.
+      
+      weex_core/Source/include/wtf/text:
+         /* 
+         * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
+         * Copyright (C) 2003, 2006, 2008, 2009, 2010, 2012 Apple Inc. All rights reserved.
+         * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+         * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2004-2006, 2008, 2014-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2004-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2005-2010, 2013-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org>
+         * Copyright (C) 2006 Apple Inc.
+         * Copyright (C) 2006 Lars Knoll <lars@trolltech.com>
+         * Copyright (C) 2006-2008, 2012-2013, 2016 Apple Inc. All rights reserved
+         * Copyright (C) 2007 Apple Inc. All rights reserved.
+         * Copyright (C) 2007-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2010 Apple Inc. All rights reserved.
+         * Copyright (C) 2009 Google Inc. All rights reserved.
+         * Copyright (C) 2009-2010, 2012-2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
+         * Copyright (C) 2010, Google Inc. All rights reserved.
+         * Copyright (C) 2010-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+         * Copyright (C) 2011, 2012 Apple Inc. All rights reserved.
+         * Copyright (C) 2012 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2012 Google Inc. All rights reserved.
+         * Copyright (C) 2012 Patrick Gansterer <paroga@paroga.com>
+         * Copyright (C) 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2014-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>.
+         * Copyright (C) 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2015-2016 Yusuke Suzuki <utatane.tea@gmail.com>.
+         * Copyright (C) 2017 Apple Inc. All rights reserved.
+         * Copyright (C) Research In Motion Limited 2009. All rights reserved.
+         * Copyright (C) Research In Motion Limited 2011. All rights reserved.
+
+         * Redistribution and use in source and binary forms, with or without
+         * modification, are permitted provided that the following conditions
+         * are met:
+         *
+         * 1.  Redistributions of source code must retain the above copyright
+         *     notice, this list of conditions and the following disclaimer. 
+         * 2.  Redistributions in binary form must reproduce the above copyright
+         *     notice, this list of conditions and the following disclaimer in the
+         *     documentation and/or other materials provided with the distribution. 
+         * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
+         *     its contributors may be used to endorse or promote products derived
+         *     from this software without specific prior written permission. 
+         *
+         * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+         * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+         * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+         * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+         * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+         * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+         * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+         * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+         * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+         * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+         */
+
+      Files under(excluding subdirectory) weex_core/Source/include/wtf except for Variant.h, Brigand.h and Optional.h :
+         /*
+         *  Copyright (C) 2003, 2008, 2012 Apple Inc. All rights reserved.
+         *  Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+         *  Copyright (C) 2005, 2006, 2007, 2008, 2010, 2013, 2014 Apple Inc. All rights reserved.
+         *  Copyright (C) 2005, 2006, 2007, 2008, 2014 Apple Inc. All rights reserved.
+         *  Copyright (C) 2005-2009, 2015-2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2005-2017 Apple Inc. All rights reserved.
+         *  Copyright (C) 2006 Apple Inc.
+         *  Copyright (C) 2006, 2009, 2011 Apple Inc. All rights reserved.
+         *  Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+         *  Copyright (C) 2008 Apple Inc. All rights reserved.
+         *  Copyright (C) 2010, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
+         * Copyright (C) 2003, 2006, 2007, 2013 Apple Inc.  All rights reserved.
+         * Copyright (C) 2003, 2016 Apple Inc.  All rights reserved.
+         * Copyright (C) 2005, 2006, 2007, 2008, 2011, 2012 Apple Inc. All rights reserved.
+         * Copyright (C) 2005, 2006, 2007, 2008, 2011, 2012, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2005, 2006, 2007, 2008, 2011, 2012, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2005, 2006, 2007, 2008, 2011, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2005, 2006, 2007, 2008, 2011, 2013, 2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved.
+         * Copyright (C) 2005, 2006, 2008, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2005-2006, 2008, 2010, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2006 Apple Inc.
+         * Copyright (C) 2006 Apple Inc.  All rights reserved.
+         * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+         * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2006, 2007, 2008, 2009, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2006, 2007, 2008, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+         * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2007 Apple Inc.  All rights reserved.
+         * Copyright (C) 2007 Apple Inc. All rights reserved.
+         * Copyright (C) 2007 Justin Haygood (jhaygood@reaktix.com)
+         * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+         * Copyright (C) 2007, 2008, 2010 Apple Inc. All rights reserved.
+         * Copyright (C) 2007, 2008, 2010, 2013, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2007, 2008, 2010, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2007, 2008, 2010, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2007, 2008, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2007, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2007-2009 Torch Mobile, Inc.
+         * Copyright (C) 2007-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2007-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2008 Apple Inc. All rights reserved.
+         * Copyright (C) 2008 David Levin <levin@chromium.org>
+         * Copyright (C) 2008 Google Inc. All rights reserved.
+         * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
+         * Copyright (C) 2008, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2016 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2008, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008-2017 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2009 Apple Inc. All rights reserved.
+         * Copyright (C) 2009 Google Inc. All rights reserved.
+         * Copyright (C) 2009 Jian Li <jianli@chromium.org>
+         * Copyright (C) 2009, 2010 Google Inc. All rights reserved.
+         * Copyright (C) 2009, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2010 Apple Inc. All rights reserved.
+         * Copyright (C) 2010 Google Inc. All rights reserved.
+         * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+         * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
+         * Copyright (C) 2010 Research In Motion Limited. All rights reserved.
+         * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
+         * Copyright (C) 2010, 2011 Research In Motion Limited. All rights reserved.
+         * Copyright (C) 2010, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2010, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2010-2017 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2011 Apple Inc.  All rights reserved.
+         * Copyright (C) 2011 Apple Inc. All rights reserved.
+         * Copyright (C) 2011 Gabor Loki <loki@webkit.org>
+         * Copyright (C) 2011 Google Inc. All rights reserved.
+         * Copyright (C) 2011 Research In Motion Limited. All rights reserved.
+         * Copyright (C) 2011 University of Szeged
+         * Copyright (C) 2011, 2012, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2013, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2014-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, Benjamin Poulain <ikipou@gmail.com>
+         * Copyright (C) 2011-2017 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2012 Apple Inc. All rights reserved.
+         * Copyright (C) 2012 Patrick Gansterer <paroga@paroga.com>
+         * Copyright (C) 2012 University of Szeged. All rights reserved.
+         * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2014-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2013 Google, Inc. All Rights Reserved.
+         * Copyright (C) 2013 Nokia Corporation and/or its subsidiary(-ies).
+         * Copyright (C) 2013 Patrick Gansterer <paroga@paroga.com>
+         * Copyright (C) 2013 Samsung Electronics. All rights reserved.
+         * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2015, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2013-2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2014 Raspberry Pi Foundation. All Rights Reserved.
+         * Copyright (C) 2014 University of Washington. All rights reserved.
+         * Copyright (C) 2014, 2015, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2015 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2015 Electronic Arts, Inc. All rights reserved.
+         * Copyright (C) 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2015-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2016 Apple Inc.  All rights reserved.
+         * Copyright (C) 2016 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2016-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2017 Apple Inc. All rights reserved.
+         * Copyright (C) Google, Inc. All rights reserved.
+         * Copyright (c) 2012, Google Inc. All rights reserved.
+         * Portions Copyright (c) 2010 Motorola Mobility, Inc.  All rights reserved.
+         * Copyright (C) 2012 Google Inc. All rights reserved.
+         *
+         * Redistribution and use in source and binary forms, with or without
+         * modification, are permitted provided that the following conditions
+         * are met:
+         * 1. Redistributions of source code must retain the above copyright
+         *    notice, this list of conditions and the following disclaimer.
+         * 2. Redistributions in binary form must reproduce the above copyright
+         *    notice, this list of conditions and the following disclaimer in the
+         *    documentation and/or other materials provided with the distribution.
+         *
+         * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+         * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+         * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+         * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+         * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+         * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+         * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+         * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+         * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+         * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+         * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+         */
+      
+      weex_core/Source/include/JavaScriptCore:
+        /*
+         *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
+         *  Copyright (C) 1999-2001 Harri Porten (porten@kde.org)
+         *  Copyright (C) 1999-2001, 2004 Harri Porten (porten@kde.org)
+         *  Copyright (C) 2001 Peter Kelly (pmk@post.com)
+         *  Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012, 2013 Apple Inc. All rights reserved.
+         *  Copyright (C) 2002, 2005-2009, 2013-2014, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2014 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2004, 2005, 2007, 2008 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2012, 2015 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2006, 2007, 2008, 2009, 2012 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2006, 2007, 2008, 2009, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2006, 2007, 2008, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2006-2009, 2015-2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2007 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2007, 2008, 2009, 2012, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2007, 2008, 2012, 2016 Apple Inc. All Rights Reserved.
+         *  Copyright (C) 2003, 2007, 2009, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003, 2007-2008, 2012, 2016 Apple Inc. All Rights Reserved.
+         *  Copyright (C) 2003, 2007-2008, 2016 Apple Inc. All Rights Reserved.
+         *  Copyright (C) 2003-2009, 2013, 2015-2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2003-2017 Apple Inc. All rights reserved.
+         *  Copyright (C) 2004, 2005, 2006, 2007, 2008, 2014 Apple Inc. All rights reserved.
+         *  Copyright (C) 2004, 2008, 2009 Apple Inc. All rights reserved.
+         *  Copyright (C) 2005, 2007, 2008, 2015-2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2006 Maks Orlovich
+         *  Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+         *  Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
+         *  Copyright (C) 2006, 2008, 2012 Apple Inc. All rights reserved.
+         *  Copyright (C) 2006-2011, 2015-2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2007 Cameron Zwarich (cwzwarich@uwaterloo.ca)
+         *  Copyright (C) 2007 Eric Seidel (eric@webkit.org)
+         *  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+         *  Copyright (C) 2007 Maks Orlovich
+         *  Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+         *  Copyright (C) 2007, 2008, 2009, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2007, 2011, 2015 Apple Inc. All rights reserved.
+         *  Copyright (C) 2007-2008, 2011, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2007-2008, 2013, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2007-2008, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2007-2009, 2014-2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2008 Apple Inc. All rights reserved.
+         *  Copyright (C) 2008, 2011 Apple Inc. All rights reserved.
+         *  Copyright (C) 2008, 2011, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2008, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2008, 2016-2017 Apple Inc. All rights reserved.
+         *  Copyright (C) 2008-2017 Apple Inc. All Rights Reserved.
+         *  Copyright (C) 2009 Torch Mobile, Inc.
+         *  Copyright (C) 2009, 2013, 2015-2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2010 Peter Varga (pvarga@inf.u-szeged.hu), University of Szeged
+         *  Copyright (C) 2010 Zoltan Herczeg (zherczeg@inf.u-szeged.hu)
+         *  Copyright (C) 2011 Apple Inc. All rights reserved.
+         *  Copyright (C) 2011, 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2011-2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>.
+         *  Copyright (C) 2016 Apple Inc. All rights reserved.
+         *  Copyright (C) 2016 Oleksandr Skachkov (gskachkov@gmail.com)
+         *  Copyright (c) 2007, 2008, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
+         * Copyright (C) 2003, 2008, 2009 Apple Inc. All rights reserved.
+         * Copyright (C) 2005, 2006, 2007, 2010 Apple Inc. All rights reserved.
+         * Copyright (C) 2005-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2006 Apple Inc.  All rights reserved.
+         * Copyright (C) 2006 Apple Inc. All rights reserved.
+         * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+         * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
+         * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+         * Copyright (C) 2006, 2007, 2008, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
+         * Copyright (C) 2006, 2008, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2006-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2007 Apple Inc.  All rights reserved.
+         * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+         * Copyright (C) 2007, 2008, 2012, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2007, 2008, 2012-2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2008 Alp Toker <alp@atoker.com>
+         * Copyright (C) 2008 Apple Inc.  All rights reserved.
+         * Copyright (C) 2008 Apple Inc. All rights reserved.
+         * Copyright (C) 2008 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+         * Copyright (C) 2008 Kelvin W Sherlock (ksherlock@gmail.com)
+         * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2009, 2010, 2014 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2008, 2009, 2012, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2009, 2012-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2009, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2009, 2013, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2009, 2013-2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2012, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2012, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2012-2013, 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2012-2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2008, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2008, 2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2008-2009, 2013-2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008-2009, 2015-2016 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2008-2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2008-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2008-2017 Apple Inc.
+         * Copyright (C) 2008-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2009 Apple Inc.  All rights reserved.
+         * Copyright (C) 2009 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2009 Apple Inc. All rights reserved.
+         * Copyright (C) 2009 Google Inc. All rights reserved.
+         * Copyright (C) 2009 University of Szeged
+         * Copyright (C) 2009, 2010 University of Szeged
+         * Copyright (C) 2009, 2010, 2012-2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2010, 2013-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2010-2012, 2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2011 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2012, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2012, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2013-2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2014-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2009, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2009-2011 STMicroelectronics. All rights reserved.
+         * Copyright (C) 2009-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2010 Apple Inc. All rights reserved.
+         * Copyright (C) 2010 MIPS Technologies, Inc. All rights reserved.
+         * Copyright (C) 2010 Peter Varga (pvarga@inf.u-szeged.hu), University of Szeged
+         * Copyright (C) 2010 Renata Hodovan (hodovan@inf.u-szeged.hu)
+         * Copyright (C) 2010 Research In Motion Limited. All rights reserved.
+         * Copyright (C) 2010 University of Szeged
+         * Copyright (C) 2010, 2012, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2010, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2010, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2010, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2010-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011 Apple Inc.  All rights reserved.
+         * Copyright (C) 2011 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2012 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2012, 2013, 2015, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2013, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2013, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2013-2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2013-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2014, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011-2013, 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011-2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011-2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011-2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2011-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2011-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2012 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2012 Apple Inc. All rights reserved.
+         * Copyright (C) 2012 Google Inc. All rights reserved.
+         * Copyright (C) 2012 Patrick Gansterer <paroga@paroga.com>
+         * Copyright (C) 2012 Research In Motion Limited. All rights reserved.
+         * Copyright (C) 2012, 2013 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2013, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2013, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2014, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2014-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012, 2016 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2012, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012-2013, 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012-2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012-2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012-2015 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2012-2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2012-2016 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2012-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2012-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2013 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2013 Apple Inc. All rights reserved.
+         * Copyright (C) 2013 Apple, Inc. All rights reserved.
+         * Copyright (C) 2013 Cisco Systems, Inc. All rights reserved.
+         * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2016 Apple, Inc. All rights reserved.
+         * Copyright (C) 2013, 2016-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2013, 2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2013-2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2013-2017 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2013-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2014 Apple Inc.  All rights reserved.
+         * Copyright (C) 2014 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2014 Apple Inc. All rights reserved.
+         * Copyright (C) 2014 Saam Barati. <saambarati1@gmail.com>
+         * Copyright (C) 2014, 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2014, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2014-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2014-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2015 Andy VanWagoner (thetalecrafter@gmail.com)
+         * Copyright (C) 2015 Apple Inc.  All rights reserved.
+         * Copyright (C) 2015 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2015 Apple Inc. All rights reserved.
+         * Copyright (C) 2015 Apple, Inc. All rights reserved.
+         * Copyright (C) 2015 Dominic Szablewski (dominic@phoboslab.org)
+         * Copyright (C) 2015 Igalia S.L.
+         * Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>
+         * Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>.
+         * Copyright (C) 2015, 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2015-2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2015-2016 Yusuke Suzuki <utatane.tea@gmail.com>.
+         * Copyright (C) 2015-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2016 Apple Inc. All Rights Reserved.
+         * Copyright (C) 2016 Apple Inc. All rights reserved.
+         * Copyright (C) 2016 Caitlin Potter <caitp@igalia.com>.
+         * Copyright (C) 2016 Yusuke Suzuki <utatane.tea@gmail.com>
+         * Copyright (C) 2016 Yusuke Suzuki <utatane.tea@gmail.com>.
+         * Copyright (C) 2016 Yusuke Suzuki <yusuke.suzuki@sslab.ics.keio.ac.jp>
+         * Copyright (C) 2016-2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2017 Apple Inc.
+         * Copyright (C) 2017 Apple Inc. All rights reserved.
+         * Copyright (C) 2017 Yusuke Suzuki <utatane.tea@gmail.com>
+         * Copyright (C) 2017 Yusuke Suzuki <utatane.tea@gmail.com>.
+         * Copyright (C) Saam Barati <saambarati1@gmail.com>. All rights reserved.
+         * Copyright (c) 2010 Google Inc. All rights reserved.
+         * Copyright (c) 2010, Google Inc. All rights reserved.
+         * 
+         *
+         * Redistribution and use in source and binary forms, with or without
+         * modification, are permitted provided that the following conditions
+         * are met:
+         * 1. Redistributions of source code must retain the above copyright
+         *    notice, this list of conditions and the following disclaimer.
+         * 2. Redistributions in binary form must reproduce the above copyright
+         *    notice, this list of conditions and the following disclaimer in the
+         *    documentation and/or other materials provided with the distribution.
+         *
+         * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+         * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+         * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+         * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+         * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+         * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+         * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+         * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+         * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+         * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+         * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+         */
\ No newline at end of file
diff --git a/android/sdk/build.gradle b/android/sdk/build.gradle
index 67f1e61..5313f44 100755
--- a/android/sdk/build.gradle
+++ b/android/sdk/build.gradle
@@ -246,6 +246,8 @@
                          'Source/android/jniprebuild/jniheader/*.h',
                          'Source/base/Compatible.cpp',
                          'Source/IPC/**/*.h','Source/IPC/**/*.cpp', 'Source/IPC/**/*.c',
+                         'Source/base/third_party/icu/*.h',
+                         'Source/base/third_party/icu/*.cpp',
                          'Source/android/jsengine/dependence/**/*.h',
                          'Source/android/jsengine/dependence/**/*.cpp',
                          'Source/include/wtf/**/*.h',
diff --git a/weex_core/Source/base/third_party/icu/icu_utf.cpp b/weex_core/Source/base/third_party/icu/icu_utf.cpp
index 025081b..a3262b0 100644
--- a/weex_core/Source/base/third_party/icu/icu_utf.cpp
+++ b/weex_core/Source/base/third_party/icu/icu_utf.cpp
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
diff --git a/weex_core/Source/base/third_party/icu/icu_utf.h b/weex_core/Source/base/third_party/icu/icu_utf.h
index de172f8..2ba8231 100644
--- a/weex_core/Source/base/third_party/icu/icu_utf.h
+++ b/weex_core/Source/base/third_party/icu/icu_utf.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
diff --git a/weex_core/Source/include/wtf/icu/unicode/bytestream.h b/weex_core/Source/include/wtf/icu/unicode/bytestream.h
index f6ae015..174aa38 100644
--- a/weex_core/Source/include/wtf/icu/unicode/bytestream.h
+++ b/weex_core/Source/include/wtf/icu/unicode/bytestream.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 // Copyright (C) 2009-2012, International Business Machines
 // Corporation and others. All Rights Reserved.
 //
diff --git a/weex_core/Source/include/wtf/icu/unicode/localpointer.h b/weex_core/Source/include/wtf/icu/unicode/localpointer.h
index 7957310..e3ccb25 100644
--- a/weex_core/Source/include/wtf/icu/unicode/localpointer.h
+++ b/weex_core/Source/include/wtf/icu/unicode/localpointer.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/parseerr.h b/weex_core/Source/include/wtf/icu/unicode/parseerr.h
index 01c707c..44ff008 100644
--- a/weex_core/Source/include/wtf/icu/unicode/parseerr.h
+++ b/weex_core/Source/include/wtf/icu/unicode/parseerr.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **********************************************************************
 *   Copyright (C) 1999-2005, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/platform.h b/weex_core/Source/include/wtf/icu/unicode/platform.h
index b41e3e2..1b2ab30 100644
--- a/weex_core/Source/include/wtf/icu/unicode/platform.h
+++ b/weex_core/Source/include/wtf/icu/unicode/platform.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 ******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/ptypes.h b/weex_core/Source/include/wtf/icu/unicode/ptypes.h
index 898c6fc..b7f7116 100644
--- a/weex_core/Source/include/wtf/icu/unicode/ptypes.h
+++ b/weex_core/Source/include/wtf/icu/unicode/ptypes.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 ******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/putil.h b/weex_core/Source/include/wtf/icu/unicode/putil.h
index f68e1cf..6fc7e9c 100644
--- a/weex_core/Source/include/wtf/icu/unicode/putil.h
+++ b/weex_core/Source/include/wtf/icu/unicode/putil.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 ******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/rep.h b/weex_core/Source/include/wtf/icu/unicode/rep.h
index 22248b3..4c7eae1 100644
--- a/weex_core/Source/include/wtf/icu/unicode/rep.h
+++ b/weex_core/Source/include/wtf/icu/unicode/rep.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **************************************************************************
 * Copyright (C) 1999-2012, International Business Machines Corporation and
diff --git a/weex_core/Source/include/wtf/icu/unicode/std_string.h b/weex_core/Source/include/wtf/icu/unicode/std_string.h
index 898c9f3..67b1d6c 100644
--- a/weex_core/Source/include/wtf/icu/unicode/std_string.h
+++ b/weex_core/Source/include/wtf/icu/unicode/std_string.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/strenum.h b/weex_core/Source/include/wtf/icu/unicode/strenum.h
index 64de547..3dbe21c 100644
--- a/weex_core/Source/include/wtf/icu/unicode/strenum.h
+++ b/weex_core/Source/include/wtf/icu/unicode/strenum.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/stringpiece.h b/weex_core/Source/include/wtf/icu/unicode/stringpiece.h
index 4b2d1e0..b29571d 100644
--- a/weex_core/Source/include/wtf/icu/unicode/stringpiece.h
+++ b/weex_core/Source/include/wtf/icu/unicode/stringpiece.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 // Copyright (C) 2009-2013, International Business Machines
 // Corporation and others. All Rights Reserved.
 //
diff --git a/weex_core/Source/include/wtf/icu/unicode/ubrk.h b/weex_core/Source/include/wtf/icu/unicode/ubrk.h
index 6af437a..e9c0ef6 100644
--- a/weex_core/Source/include/wtf/icu/unicode/ubrk.h
+++ b/weex_core/Source/include/wtf/icu/unicode/ubrk.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 ******************************************************************************
 * Copyright (C) 1996-2013, International Business Machines Corporation and others.
diff --git a/weex_core/Source/include/wtf/icu/unicode/uchar.h b/weex_core/Source/include/wtf/icu/unicode/uchar.h
index 098b9fb..1a5b71b 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uchar.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uchar.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **********************************************************************
 *   Copyright (C) 1997-2013, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/ucnv.h b/weex_core/Source/include/wtf/icu/unicode/ucnv.h
index 7cb6547..c5fc2dc 100644
--- a/weex_core/Source/include/wtf/icu/unicode/ucnv.h
+++ b/weex_core/Source/include/wtf/icu/unicode/ucnv.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **********************************************************************
 *   Copyright (C) 1999-2013, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/ucnv_err.h b/weex_core/Source/include/wtf/icu/unicode/ucnv_err.h
index 68a2828..e092e95 100644
--- a/weex_core/Source/include/wtf/icu/unicode/ucnv_err.h
+++ b/weex_core/Source/include/wtf/icu/unicode/ucnv_err.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **********************************************************************
 *   Copyright (C) 1999-2009, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/ucol.h b/weex_core/Source/include/wtf/icu/unicode/ucol.h
index 475c055..5a459b5 100644
--- a/weex_core/Source/include/wtf/icu/unicode/ucol.h
+++ b/weex_core/Source/include/wtf/icu/unicode/ucol.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 * Copyright (c) 1996-2013, International Business Machines Corporation and others.
diff --git a/weex_core/Source/include/wtf/icu/unicode/uconfig.h b/weex_core/Source/include/wtf/icu/unicode/uconfig.h
index 3b359f2..bfa8e77 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uconfig.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uconfig.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*  
 **********************************************************************
 *   Copyright (C) 2002-2013, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/ucurr.h b/weex_core/Source/include/wtf/icu/unicode/ucurr.h
index cf4f184..2769813 100644
--- a/weex_core/Source/include/wtf/icu/unicode/ucurr.h
+++ b/weex_core/Source/include/wtf/icu/unicode/ucurr.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **********************************************************************
 * Copyright (c) 2002-2013, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/uenum.h b/weex_core/Source/include/wtf/icu/unicode/uenum.h
index 7413401..5408ec5 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uenum.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uenum.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/uiter.h b/weex_core/Source/include/wtf/icu/unicode/uiter.h
index e9f7924..0cdb8ff 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uiter.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uiter.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/uloc.h b/weex_core/Source/include/wtf/icu/unicode/uloc.h
index 3c193c1..28ab902 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uloc.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uloc.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **********************************************************************
 *   Copyright (C) 1997-2013, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/umachine.h b/weex_core/Source/include/wtf/icu/unicode/umachine.h
index 35fcb29..d1102f4 100644
--- a/weex_core/Source/include/wtf/icu/unicode/umachine.h
+++ b/weex_core/Source/include/wtf/icu/unicode/umachine.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 ******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/unistr.h b/weex_core/Source/include/wtf/icu/unicode/unistr.h
index d63fdf1..c6e8b44 100644
--- a/weex_core/Source/include/wtf/icu/unicode/unistr.h
+++ b/weex_core/Source/include/wtf/icu/unicode/unistr.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **********************************************************************
 *   Copyright (C) 1998-2013, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/unorm.h b/weex_core/Source/include/wtf/icu/unicode/unorm.h
index caeec75..fbb7b49 100644
--- a/weex_core/Source/include/wtf/icu/unicode/unorm.h
+++ b/weex_core/Source/include/wtf/icu/unicode/unorm.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 * Copyright (c) 1996-2010, International Business Machines Corporation
diff --git a/weex_core/Source/include/wtf/icu/unicode/unorm2.h b/weex_core/Source/include/wtf/icu/unicode/unorm2.h
index 3ece029..7152fc1 100644
--- a/weex_core/Source/include/wtf/icu/unicode/unorm2.h
+++ b/weex_core/Source/include/wtf/icu/unicode/unorm2.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/uobject.h b/weex_core/Source/include/wtf/icu/unicode/uobject.h
index 34b476c..54ceace 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uobject.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uobject.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 ******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/urename.h b/weex_core/Source/include/wtf/icu/unicode/urename.h
index 8119fac..6b1f490 100644
--- a/weex_core/Source/include/wtf/icu/unicode/urename.h
+++ b/weex_core/Source/include/wtf/icu/unicode/urename.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *   Copyright (C) 2002-2013, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/uscript.h b/weex_core/Source/include/wtf/icu/unicode/uscript.h
index 904e15b..4eb3195 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uscript.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uscript.h
@@ -1,20 +1,16 @@
-/**
- * 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
+/*
+ **********************************************************************
+ *   Copyright (C) 1997-2013, International Business Machines
+ *   Corporation and others.  All Rights Reserved.
+ **********************************************************************
  *
- *   http://www.apache.org/licenses/LICENSE-2.0
+ * File USCRIPT.H
  *
- * 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.
+ * Modification History:
+ *
+ *   Date        Name        Description
+ *   07/06/2001    Ram         Creation.
+ ******************************************************************************
  */
 #ifndef USCRIPT_H
 #define USCRIPT_H
diff --git a/weex_core/Source/include/wtf/icu/unicode/uset.h b/weex_core/Source/include/wtf/icu/unicode/uset.h
index fa8fffe..40510cd 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uset.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uset.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/ustring.h b/weex_core/Source/include/wtf/icu/unicode/ustring.h
index b5ded8c..d2ea31c 100644
--- a/weex_core/Source/include/wtf/icu/unicode/ustring.h
+++ b/weex_core/Source/include/wtf/icu/unicode/ustring.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **********************************************************************
 *   Copyright (C) 1998-2012, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/utext.h b/weex_core/Source/include/wtf/icu/unicode/utext.h
index af7c8ea..d431913 100644
--- a/weex_core/Source/include/wtf/icu/unicode/utext.h
+++ b/weex_core/Source/include/wtf/icu/unicode/utext.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/utf.h b/weex_core/Source/include/wtf/icu/unicode/utf.h
index c587dba..f5954fe 100644
--- a/weex_core/Source/include/wtf/icu/unicode/utf.h
+++ b/weex_core/Source/include/wtf/icu/unicode/utf.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/utf16.h b/weex_core/Source/include/wtf/icu/unicode/utf16.h
index a5b8d14..bdd88a8 100644
--- a/weex_core/Source/include/wtf/icu/unicode/utf16.h
+++ b/weex_core/Source/include/wtf/icu/unicode/utf16.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/utf8.h b/weex_core/Source/include/wtf/icu/unicode/utf8.h
index 78eb2a2..21e5f3d 100644
--- a/weex_core/Source/include/wtf/icu/unicode/utf8.h
+++ b/weex_core/Source/include/wtf/icu/unicode/utf8.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/utf_old.h b/weex_core/Source/include/wtf/icu/unicode/utf_old.h
index db1528d..f9125b1 100644
--- a/weex_core/Source/include/wtf/icu/unicode/utf_old.h
+++ b/weex_core/Source/include/wtf/icu/unicode/utf_old.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *
diff --git a/weex_core/Source/include/wtf/icu/unicode/utypes.h b/weex_core/Source/include/wtf/icu/unicode/utypes.h
index 258aa1c..8f924c9 100644
--- a/weex_core/Source/include/wtf/icu/unicode/utypes.h
+++ b/weex_core/Source/include/wtf/icu/unicode/utypes.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 **********************************************************************
 *   Copyright (C) 1996-2012, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/uvernum.h b/weex_core/Source/include/wtf/icu/unicode/uvernum.h
index ee7ff1a..bd0b0c9 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uvernum.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uvernum.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *   Copyright (C) 2000-2013, International Business Machines
diff --git a/weex_core/Source/include/wtf/icu/unicode/uversion.h b/weex_core/Source/include/wtf/icu/unicode/uversion.h
index f32db90..74e3091 100644
--- a/weex_core/Source/include/wtf/icu/unicode/uversion.h
+++ b/weex_core/Source/include/wtf/icu/unicode/uversion.h
@@ -1,21 +1,3 @@
-/**
- * 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.
- */
 /*
 *******************************************************************************
 *   Copyright (C) 2000-2011, International Business Machines
