diff --git "a/custom_component/frontend/build/static/js/2.6704e1cc.chunk.js.map" "b/custom_component/frontend/build/static/js/2.6704e1cc.chunk.js.map" new file mode 100644--- /dev/null +++ "b/custom_component/frontend/build/static/js/2.6704e1cc.chunk.js.map" @@ -0,0 +1 @@ +{"version":3,"sources":["../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../src/event.mjs","../../src/event-target.mjs","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/AwaitValue.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js","../node_modules/flatbuffers/js/flatbuffers.mjs","../node_modules/text-encoding-utf-8/lib/encoding.lib.mjs","../util/utf8.ts","../io/interfaces.ts","../util/compat.ts","../util/buffer.ts","../io/adapters.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../vector.ts","../fb/Schema.ts","../fb/Message.ts","../enum.ts","../util/bit.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../visitor.ts","../visitor/typecomparator.ts","../type.ts","../data.ts","../util/pretty.ts","../builder/valid.ts","../builder/buffer.ts","../builder.ts","../builder/bool.ts","../builder/null.ts","../builder/date.ts","../builder/decimal.ts","../builder/dictionary.ts","../builder/fixedsizebinary.ts","../util/math.ts","../builder/float.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../util/bn.ts","../builder/int.ts","../builder/time.ts","../builder/timestamp.ts","../builder/interval.ts","../builder/binary.ts","../builder/utf8.ts","../builder/run.ts","../vector/row.ts","../util/vector.ts","../vector/chunked.ts","../column.ts","../util/args.ts","../schema.ts","../builder/list.ts","../builder/fixedsizelist.ts","../builder/map.ts","../builder/struct.ts","../builder/union.ts","../visitor/set.ts","../fb/File.ts","../visitor/builderctor.ts","../builder/index.ts","../ipc/metadata/file.ts","../io/stream.ts","../io/file.ts","../util/int.ts","../visitor/vectorloader.ts","../visitor/typeassembler.ts","../ipc/metadata/json.ts","../ipc/metadata/message.ts","../ipc/message.ts","../visitor/vectorassembler.ts","../ipc/writer.ts","../util/recordbatch.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../vector/base.ts","../vector/binary.ts","../vector/bool.ts","../vector/date.ts","../vector/decimal.ts","../vector/dictionary.ts","../vector/fixedsizebinary.ts","../vector/fixedsizelist.ts","../vector/float.ts","../vector/interval.ts","../vector/int.ts","../vector/list.ts","../vector/map.ts","../vector/null.ts","../vector/struct.ts","../vector/timestamp.ts","../vector/time.ts","../vector/union.ts","../vector/utf8.ts","../util/fn.ts","../visitor/get.ts","../visitor/indexof.ts","../visitor/iterator.ts","../visitor/toarray.ts","../visitor/bytewidth.ts","../visitor/vectorctor.ts","../vector/index.ts","../table.ts","../recordbatch.ts","../ipc/reader.ts","../io/whatwg/builder.ts","../compute/predicate.ts","../compute/dataframe.ts","../Arrow.ts","../Arrow.dom.ts","../io/whatwg/iterable.ts","../io/whatwg/reader.ts","../io/whatwg/writer.ts","../node_modules/streamlit-component-lib/dist/ArrowTable.js","../node_modules/streamlit-component-lib/dist/streamlit.js","../node_modules/streamlit-component-lib/dist/StreamlitReact.js","../node_modules/lodash/isObject.js","../node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../src/Enum.js","../../src/Utility.js","../../src/Tokenizer.js","../../src/Parser.js","../../src/Prefixer.js","../../src/Serializer.js","../../src/Middleware.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/object-assign/index.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_Symbol.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/react-dom/index.js","../node_modules/lodash/range.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react-is/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/eq.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_root.js","../node_modules/lodash/_freeGlobal.js","../node_modules/webpack/buildin/global.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isObjectLike.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","_inherits","subClass","superClass","create","constructor","value","_createSuper","Derived","result","Super","NewTarget","this","Reflect","construct","arguments","apply","module","exports","require","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","hasOwnProperty","EmotionCacheContext","createContext","HTMLElement","createCache","Provider","withEmotionCache","func","forwardRef","ref","cache","useContext","ThemeContext","useInsertionEffect","React","useInsertionEffectMaybe","typePropName","createEmotionProps","type","newProps","call","Insertion","_ref","serialized","isStringTag","registerStyles","insertStyles","Emotion","cssProp","css","undefined","registered","WrappedComponent","registeredStyles","className","getRegisteredStyles","serializeStyles","name","createElement","Fragment","classNames","rawClassName","split","forEach","push","styles","inserted","current","insert","sheet","next","murmur2","str","k","h","len","charCodeAt","toString","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","property","isProcessableValue","processStyleName","memoize","styleName","replace","toLowerCase","processStyleValue","match","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","obj","string","Array","isArray","_key","interpolated","_i","createStringFromObject","previousCursor","cached","labelPattern","args","stringMode","strings","raw","lastIndex","identifierName","exec","hashString","_assertThisInitialized","self","ReferenceError","_typeof","Symbol","iterator","_possibleConstructorReturn","assertThisInitialized","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","concat","targetStatics","sourceStatics","e","fn","arg","weakMemoize","WeakMap","has","get","ret","set","useLayoutEffect","_len","keyframes","insertable","_extends","assign","source","_setPrototypeOf","p","_isNativeReflectConstruct","sham","Proxy","Date","privateData","wrappers","pd","event","retv","console","assert","setCancelFlag","data","passiveListener","cancelable","canceled","preventDefault","error","Event","eventTarget","eventPhase","currentTarget","stopped","immediateStopped","timeStamp","now","defineRedirectDescriptor","defineCallDescriptor","getWrapper","proto","wrapper","BaseEvent","CustomEvent","isFunc","defineWrapper","isStopped","setPassiveListener","composedPath","stopPropagation","stopImmediatePropagation","Boolean","bubbles","composed","cancelBubble","initEvent","window","listenersMap","isObject","x","getListeners","listeners","defineEventAttribute","eventTargetPrototype","eventName","node","listenerType","listener","prev","delete","newNode","passive","once","defineEventAttributeDescriptor","defineCustomEventTarget","eventNames","CustomEventTarget","EventTarget","types","Map","addEventListener","options","optionsIsObj","capture","removeEventListener","dispatchEvent","wrappedEvent","wrapEvent","err","handleEvent","setEventPhase","setCurrentTarget","defaultPrevented","_arrayLikeToArray","arr","arr2","_unsupportedIterableToArray","minLen","n","slice","from","test","_createForOfIteratorHelper","F","s","done","_e","f","it","normalCompletion","didErr","step","_e2","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","Promise","then","_asyncToGenerator","_slicedToArray","_arr","_n","_d","_s","_AwaitValue","wrapped","_awaitAsyncGenerator","AsyncGenerator","front","back","resume","wrappedAwait","settle","_invoke","request","_wrapAsyncGenerator","_asyncGeneratorDelegate","inner","awaitWrap","iter","waiting","pump","asyncIterator","flatbuffers","inRange","a","min","max","ToDictionary","Offset","Table","SIZEOF_SHORT","SIZEOF_INT","FILE_IDENTIFIER_LENGTH","Encoding","UTF8_BYTES","UTF16_STRING","int32","Int32Array","float32","Float32Array","buffer","float64","Float64Array","isLittleEndian","Uint16Array","Uint8Array","Long","low","high","ZERO","toFloat64","equals","other","Builder","opt_initial_size","initial_size","bb","ByteBuffer","allocate","space","minalign","vtable","vtable_in_use","isNested","object_start","vtables","vector_num_elems","force_defaults","clear","capacity","forceDefaults","dataBuffer","asUint8Array","bytes","subarray","position","offset","prep","size","additional_bytes","align_size","old_buf_size","growByteBuffer","pad","byte_size","writeInt8","writeInt16","writeInt32","writeInt64","writeFloat32","writeFloat64","addInt8","addInt16","addInt32","addInt64","addFloat32","addFloat64","addFieldInt8","voffset","defaultValue","slot","addFieldInt16","addFieldInt32","addFieldInt64","addFieldFloat32","addFieldFloat64","addFieldOffset","addOffset","addFieldStruct","nested","Error","notNested","new_buf_size","nbb","setPosition","startObject","numfields","endObject","vtableloc","trimmed_size","existing_vtable","vt1","outer_loop","vt2","readInt16","j","finish","root_table","opt_file_identifier","file_identifier","requiredField","table","field","table_start","vtable_start","readInt32","startVector","elem_size","num_elems","alignment","endVector","createString","utf8","codePoint","createLong","bytes_","position_","readInt8","readUint8","readUint16","readUint32","readInt64","readUint64","readFloat32","readFloat64","writeUint8","writeUint16","writeUint32","writeUint64","getBufferIdentifier","String","fromCharCode","__offset","bb_pos","vtable_offset","__union","t","__string","opt_encoding","b","c","__indirect","__vector","__vector_len","__has_identifier","ident","Stream","tokens","endOfStream","read","shift","prepend","token","unshift","pop","decoderError","fatal","opt_code_point","TextDecoder","encoding","_streaming","_BOMseen","_decoder","_fatal","_ignoreBOM","TextEncoder","_encoder","_options","UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","handler","stream","bite","code_point","UTF8Encoder","count","temp","decode","input","ArrayBuffer","byteOffset","byteLength","input_stream","code_points","indexOf","cp","codePointsToString","encode","opt_string","u","d","stringToCodePoints","_Buffer","Buffer","useNativeEncoders","decodeUtf8","decoder","encodeUtf8","encoder","ITERATOR_DONE","freeze","_json","_getDOMStream","tee","_getNodeStream","pipe","pipeTo","duplex","pipeThrough","_DOMStream","toDOMStream","_nodeStream","toNodeStream","_values","resolvers","_closedPromise","r","_closedPromiseResolve","reason","return","_ensureOpen","_error","_","abort","close","BigIntUnavailableError","BigIntUnavailable","asIntN","asUintN","BigInt","BigIntCtor","BigIntAvailable","BigInt64ArrayUnavailableError","BigInt64Array","BigInt64ArrayCtor","BigUint64ArrayUnavailableError","BigUint64Array","BigUint64ArrayCtor","isNumber","isBoolean","isFunction","isPromise","isIterable","isAsyncIterable","isArrowJSON","isIteratorResult","isFileHandle","isFetchResponse","toArrayBufferViewIterator","SharedArrayBuf","SharedArrayBuffer","memcpy","targetByteOffset","sourceByteLength","targetByteLength","dst","src","Math","joinUint8Arrays","chunks","sliced","xOffset","yOffset","xLen","yLen","y","collapseContiguousByteRanges","reduce","index","Infinity","toArrayBufferView","ArrayBufferViewCtor","isView","BYTES_PER_ELEMENT","toInt8Array","Int8Array","toInt16Array","Int16Array","toInt32Array","toUint16Array","toUint32Array","Uint32Array","toFloat32Array","toFloat64Array","toUint8ClampedArray","Uint8ClampedArray","ArrayCtor","wrap","buffers","toInt8ArrayIterator","toInt16ArrayIterator","toInt32ArrayIterator","toUint8ArrayIterator","toUint16ArrayIterator","toUint32ArrayIterator","toFloat32ArrayIterator","toFloat64ArrayIterator","toUint8ClampedArrayIterator","toArrayBufferViewAsyncIterator","emit","toInt8ArrayAsyncIterator","toInt16ArrayAsyncIterator","toInt32ArrayAsyncIterator","toUint8ArrayAsyncIterator","toUint16ArrayAsyncIterator","toUint32ArrayAsyncIterator","toFloat32ArrayAsyncIterator","toFloat64ArrayAsyncIterator","toUint8ClampedArrayAsyncIterator","rebaseValueOffsets","valueOffsets","compareArrayLike","fromIterable","fromAsyncIterable","fromDOMStream","fromNodeStream","byteRange","cmd","bufferLength","threw","isNaN","throw","releaseLock","byobReader","defaultReader","supportsBYOB","reader","getBYOBReader","getDefaultReader","catch","readFromBYOBReader","mode","readInto","onEvent","cleanup","events","evt","destroy","race","map","isFinite","_defineProperty","object","enumerableOnly","symbols","filter","sym","_objectSpread2","getOwnPropertyDescriptors","defineProperties","receiver","base","desc","flatbuf","arrow","apache","org","MetadataVersion","UnionMode","Precision","DateUnit","TimeUnit","IntervalUnit","Type","Endianness","Null","__init","builder","startNull","endNull","Struct_","startStruct_","endStruct_","List","startList","endList","LargeList","startLargeList","endLargeList","FixedSizeList","listSize","startFixedSizeList","addListSize","endFixedSizeList","keysSorted","startMap","addKeysSorted","endMap","Union","Sparse","typeIdsOffset","numElems","startUnion","addMode","addTypeIds","endUnion","Int","bitWidth","isSigned","startInt","addBitWidth","addIsSigned","endInt","FloatingPoint","HALF","precision","startFloatingPoint","addPrecision","endFloatingPoint","Utf8","startUtf8","endUtf8","Binary","startBinary","endBinary","LargeUtf8","startLargeUtf8","endLargeUtf8","LargeBinary","startLargeBinary","endLargeBinary","FixedSizeBinary","byteWidth","startFixedSizeBinary","addByteWidth","endFixedSizeBinary","Bool","startBool","endBool","Decimal","scale","startDecimal","addScale","endDecimal","MILLISECOND","unit","startDate","addUnit","endDate","Time","startTime","endTime","Timestamp","SECOND","optionalEncoding","timezoneOffset","startTimestamp","addTimezone","endTimestamp","Interval","YEAR_MONTH","startInterval","endInterval","Duration","startDuration","endDuration","KeyValue","keyOffset","valueOffset","startKeyValue","addKey","addValue","endKeyValue","DictionaryEncoding","id","indexTypeOffset","isOrdered","startDictionaryEncoding","addId","addIndexType","addIsOrdered","endDictionaryEncoding","Field","NONE","nameOffset","nullable","typeType","typeOffset","dictionaryOffset","childrenOffset","customMetadataOffset","startField","addName","addNullable","addTypeType","addType","addDictionary","addChildren","addCustomMetadata","endField","Schema","Little","endianness","fieldsOffset","startSchema","addEndianness","addFields","endSchema","MessageHeader","FieldNode","null_count","RecordBatch","nodesOffset","buffersOffset","startRecordBatch","addLength","addNodes","addBuffers","endRecordBatch","DictionaryBatch","dataOffset","isDelta","startDictionaryBatch","addData","addIsDelta","endDictionaryBatch","Message","V1","version","headerType","headerOffset","bodyLength","startMessage","addVersion","addHeaderType","addHeader","addBodyLength","endMessage","BufferType","iterateBits","getBool","_data","_index","byte","bit","getBit","setBool","truncateBitmap","bitmap","alignedSize","packBools","values","xs","begin","context","byteIndex","remaining","popcnt_bit_range","lhs","rhs","sum","rhsInside","lhsInside","popcnt_array","cnt","pos","view","DataView","popcnt_uint32","getUint32","getUint16","getUint8","uint32","_toConsumableArray","nodes","visit","getVisitFn","throwIfNotFound","_node","visitor","dtype","inferDType","visitNull","visitBool","visitInt","Int8","visitInt8","Int16","visitInt16","Int32","visitInt32","Int64","visitInt64","Uint8","visitUint8","Uint16","visitUint16","Uint32","visitUint32","Uint64","visitUint64","Float","visitFloat","Float16","visitFloat16","Float32","visitFloat32","Float64","visitFloat64","visitUtf8","visitBinary","visitFixedSizeBinary","visitDate","DateDay","visitDateDay","DateMillisecond","visitDateMillisecond","visitTimestamp","TimestampSecond","visitTimestampSecond","TimestampMillisecond","visitTimestampMillisecond","TimestampMicrosecond","visitTimestampMicrosecond","TimestampNanosecond","visitTimestampNanosecond","visitTime","TimeSecond","visitTimeSecond","TimeMillisecond","visitTimeMillisecond","TimeMicrosecond","visitTimeMicrosecond","TimeNanosecond","visitTimeNanosecond","visitDecimal","visitList","Struct","visitStruct","visitUnion","DenseUnion","visitDenseUnion","SparseUnion","visitSparseUnion","Dictionary","visitDictionary","visitInterval","IntervalDayTime","visitIntervalDayTime","IntervalYearMonth","visitIntervalYearMonth","visitFixedSizeList","visitMap","typeId","SINGLE","DOUBLE","MICROSECOND","NANOSECOND","DAY","DAY_TIME","Dense","schema","compareFields","fields","others","every","compareField","compareConstructor","compareAny","compareInt","compareFloat","compareDate","compareTimestamp","timezone","compareTime","compareUnion","typeIds","children","compareInterval","indices","dictionary","toStringTag","ArrayType","child","valueType","join","typeIdToChildIndex","idx","atomicDictionaryId","getId","strideForType","nullCount","childData","floor","_nullCount","Data","stride","nullBitmap","childStride","_sliceBuffers","clone","_sliceChildren","newLength","fill","VALIDITY","TYPE","OFFSET","DATA","valueOffsetsOrChildren","valueToString","toPrimitive","JSON","stringify","createIsValidFunction","nullValues","fnBody","noNaNs","valueToCase","Function","roundLengthUpToNearest64Bytes","BPE","_resize","extra","reserved","array","reserve","numValid","val","cur","_ArrayType64","buffer64","ArrayType64","nulls","finished","_nulls","_isValid","new","flush","numInvalid","_offsets","_typeIds","reservedLength","reservedByteLength","setValid","isValid","setValue","_setValue","valid","numChildren","offsets","last","queueingStrategy","highWaterMark","sizeProperty","numChunks","append","toVector","opts","_pendingLength","pending","_pending","_flush","pendingLength","_flushPending","hashFn","_dictionaryOffset","_keysToIndices","valueToKey","keysToIndices","_dictionary","curr","f64","u32","uint16ToFloat64","expo","sigf","sign","NaN","float64ToUint16","Parent","Class","isNativeReflectConstruct","bind","bignumToString","bignumToBigInt","isArrowBigNumSymbol","for","BigNum","SignedBigNum","UnsignedBigNum","DecimalBigNum","bignumToNumber","bn","hi","lo","signed","words","number","decimalToString","digits","base64","base32","checks","reverse","toJSON","valueOf","hint","memo","num","BN","toBigInt","kParent","kRowIndex","kKeyToIdx","kIdxToVal","kCustomInspect","parent","numKeys","ktoi","itov","getValue","getIndex","ki","vi","kr","vr","v","callbackfn","thisArg","callback","m","createRowProxy","getChildAt","defineRowProxyProperties","findIndex","tmp","row","getter","setter","getKey","RowProxyHandler","isExtensible","deleteProperty","preventExtensions","ownKeys","clampIndex","adjust","clampRange","end","big0","isNaNFast","createElementComparator","search","typeofSearch","valueOfSearch","comparators","createSubElementsComparator","creatMapComparator","createArrayLikeComparator","createVectorComparator","createObjectComparator","compareArray","compareObject","vec","compareVector","lKeyItr","rKeyItr","rValItr","rVal","lKey","rKey","calculateOffsets","_type","_chunks","_chunkOffsets","_length","_numChildren","chunk","isDictionary","_indices","Chunked","flatten","_sliceInternal","_children","vector","mid","isValidInternal","getInternal","element","indexOfInternal","toArray","arraySet","typedSet","chunkIndex","fromIndex","start","found","slices","chunkOffsets","chunkLength","chunkOffset","to","vectors","selectChunkArgs","_field","metadata","Column","column","rest","some","_chunk","selectArgs","Ctor","vals","_selectArgs","selectFieldArgs","_selectChunkArgs","res","selectVectorChildrenArgs","_selectVectorChildrenArgs","entries","fieldIndex","valueIndex","dictionaries","generateDictionaryMap","compareSchemas","columnNames","names","columnIndices","curFields","mergeMaps","newFields","f2","newDictionaries","m1","m2","_run","run","childIndex","_valueToChildTypeId","childTypeId","setEpochMsToMillisecondsLong","epochMs","setVariableWidthBytes","setDateDay","setEpochMsToDays","setDateMillisecond","setNumeric","values64","long","setTimestampSecond","setTimestampMillisecond","setTimestampMicrosecond","setEpochMsToMicrosecondsLong","setTimestampNanosecond","setEpochMsToNanosecondsLong","setTimeSecond","setTimeMillisecond","setTimeMicrosecond","setTimeNanosecond","setDenseUnion","setSparseUnion","setIntervalDayTime","setIntervalYearMonth","itr","_setStructVectorValue","_setStructArrayValue","_setStructObjectValue","newBuilder","defaultOptions","getChildOptions","T","Footer","Block","schemaOffset","dictionariesOffset","recordBatchesOffset","startFooter","addSchema","addDictionaries","addRecordBatches","endFooter","metaDataLength","_Block","_Footer","V4","recordBatches","dictionaryBatches","_recordBatches","_dictionaryBatches","numRecordBatches","block","getRecordBatch","numDictionaries","getDictionaryBatch","buf","footer","getRootAsFooter","startRecordBatchesVector","rb","startDictionariesVector","db","dictionaryBatchesOffset","finishFooterBuffer","_footer","recordBatchesLength","dictionariesLength","fileBlock","FileBlock","createBlock","sync","toUint8Array","peek","AsyncByteStream","body","closed","cancel","readAt","getInt32","nBytes","file","_handle","stat","bytesRead","intAsHex","kPowersOfTen","L","R","product","lessThan","_times","_plus","out_buffer","fromString","out","posn","group","parseInt","substr","multiple","times","plus","left","right","this_high","other_high","negate","startsWith","L0","L1","L2","L3","R0","R1","R2","R3","multiply","sums","Int128","nodesIndex","buffersIndex","nextFieldNode","readNullBitmap","readData","readOffsets","visitMany","readTypeIds","readDictionary","nextBufferRange","sources","isTimestamp","isInt","isTime","isDate","convertArray","isDecimal","isBinary","isFixedSizeBinary","binaryDataFromJSON","isBool","isUtf8","joined","startTypeIdsVector","createTypeIdsVector","indexType","recordBatchFromJSON","fieldNodesFromJSON","fieldNodes","validity","buffersFromJSON","schemaFieldsFromJSON","_schema","fromJSON","fieldChildrenFromJSON","customMetadataFromJSON","_metadata","indexTypeFromJSON","typeFromJSON","_Field","_Schema","_Message","_KeyValue","_FieldNode","_Endianness","_DictionaryBatch","header","_version","_headerType","_createHeader","_bodyLength","msg","message","messageHeaderFromJSON","_message","getRootAsMessage","decodeMessageHeader","isSchema","isRecordBatch","isDictionaryBatch","finishMessageBuffer","_nodes","_buffers","_isDelta","_id","decodeFieldNodes","batch","nodesLength","decodeBuffers","bufferRegions","buffersLength","decodeSchemaFields","fieldsLength","decodeFieldChildren","childrenLength","decodeCustomMetadata","entry","customMetadataLength","customMetadata","decodeIndexType","decodeFieldType","typeIdsArray","childOffsets","childrenVectorOffset","createChildrenVector","metadataOffset","createCustomMetadataVector","dictType","dictMeta","fieldOffsets","startFieldsVector","fieldsVectorOffset","createFieldsVector","platformIsLittleEndian","Big","recordBatch","startNodesVector","nodesVectorOffset","startBuffersVector","b_","buffersVectorOffset","dictionaryBatch","createFieldNode","createBuffer","setInt16","invalidMessageMetadata","expected","actual","invalidMessageBodyLength","readMetadataLength","readMetadata","throwIfNull","readMessage","PADDING","metadataLength","_body","_batchIndex","_dictionaryIndex","batches","flattenDataSources","MAGIC","checkForMagicArrowString","magicLength","magicAndPadding","magicX2AndPadding","_byteLength","_bufferRegions","RangeError","isNull","addBuffer","_nullV","assembler","VectorAssembler","vectorChildren","assembleResult","assembleFlatVector","assembleFlatListVector","firstOffset","lastOffset","assembleListVector","assembleNestedVector","maxChildTypeId","childLengths","shiftedOffsets","unshiftedOffsets","childLength","_position","_started","_sink","_dictionaryBlocks","_recordBatchBlocks","_dictionaryDeltaOffsets","autoDestroy","writeLegacyIpcFormat","_autoDestroy","_writeLegacyIpcFormat","writeAll","writeAllAsync","reset","sink","objectMode","_writeFooter","compareTo","_writeSchema","payload","_writeRecordBatch","flatbufferSize","prefixSize","nPaddingBytes","_write","of","_writePadding","write","_writeMessage","assemble","_writeDictionaries","_writeBodyBuffers","padding","_writeDictionaryBatch","writableStrategy","readableStrategy","writer","RecordBatchStreamWriter","_writeMagic","RecordBatchFileWriter","noopBuf","nullBufs","bitmapLength","ensureSameLengthData","batchLength","l","batchData","_changeLengthAndBackfillNullBitmap","distributeColumnsIntoRecordBatches","distributeVectorsIntoRecordBatches","vecs","batchArgs","numBatches","numColumns","Number","POSITIVE_INFINITY","distributeChildData","uniformlyDistributeChunksAcrossRecordBatches","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","_bindDataAccessors","VectorName","isConcatSpreadable","vectorFromValuesWithType","ArrowType","InputType","typeCtor","dataCtor","ctor","is64bit","_values64","toBigInt64Array","toBigUint64Array","_row","bound","partial0","partial2","epochMillisecondsLongToMs","epochMillisecondsToDate","getVariableWidthBytes","getDateDay","epochDaysToMs","epochDaysToDate","getDateMillisecond","epochMillisecondsLongToDate","getNumeric","getTimestampSecond","getTimestampMillisecond","getTimestampMicrosecond","epochMicrosecondsLongToMs","getTimestampNanosecond","epochNanosecondsLongToMs","getTimeSecond","getTimeMillisecond","getDenseUnion","getSparseUnion","getIntervalDayTime","getIntervalYearMonth","interval","int32s","_vector","decimal","indexOfValue","searchElement","indexOfNull","indexOfUnion","vectorIterator","getFn","nullByte","nullBit","nullableIterator","arrayOfVector","variableWidthColumnErrorMessage","____","visitFields","newDataType","throughIterable","transform","throughAsyncIterable","getByteWidth","wrapNullableSet","VectorCtor","partialType0","getColumnAt","getColumnIndex","Writer","nameToIndex","selectAt","columnName","newIdx","oldToNew","_f","_fs","empty","fromStruct","tableFromIterable","tableFromAsyncIterable","isSync","open","opening","cols","_dictionaries","collect","fs","vs","DictionaryCollector","readAllSync","impl","_impl","isFile","isAsync","isStream","readRecordBatch","RecordBatchReader","fromArrowJSON","fromFileHandle","fromAsyncByteStream","fromByteStream","readAllAsync","_recordBatchIndex","_loadVectors","_reader","shouldAutoDestroy","readSchema","_readNextMessageAndValidate","readMessageBody","_loadRecordBatch","_loadDictionaryBatch","_readFooter","_readDictionaryBatch","seek","_numChunks","_finished","_bufferedSize","builderOptions","_controller","_builder","_getSize","chunkByteLength","readableHighWaterMark","writableHighWaterMark","ReadableStream","_maybeFlush","WritableStream","_writeValueAndReturnChunkSize","bufferedSize","controller","desiredSize","_enqueue","enqueue","Value","ge","le","eq","colidx","expr","_bindLitLit","_bindLitCol","_bindColLit","_bindColCol","accum","And","Or","_batch","rtrn","left_func","right_func","col","lit","col_func","lastDictionary","reverseLookup","lastKey","countBy","scan","scanReverse","predicate","batchIndex","numRows","count_by","countByteLength","ceil","log","counts","_predicate","isBound","FilteredDataFrame","and","bm","hwm","pull","asyncIterableAsReadableDOMStream","iterableAsReadableDOMStream","queue","readable","ComponentMessageType","ArrowTable","indexBuffer","columnsBuffer","styler","_this","getCell","rowIndex","columnIndex","isBlankCell","headerRows","headerColumns","isIndexCell","isColumnsCell","content","dataColumnIndex","getContent","columnsTable","dataRowIndex","uuid","indexTable","displayValuesTable","dataTable","getColumnTypeId","nanosToDate","caption","displayValues","numCols","rows","dataRows","dataColumns","serialize","nanos","__assign","Streamlit","API_VERSION","RENDER_EVENT","registeredMessageListener","setComponentReady","onMessageEvent","sendBackMsg","COMPONENT_READY","apiVersion","setFrameHeight","height","document","scrollHeight","lastFrameHeight","SET_FRAME_HEIGHT","setComponentValue","dataType","isBigIntArray","isTypedArray","SET_COMPONENT_VALUE","onRenderMessage","dataframeArgs","argsDataframeToObject","disabled","theme","_injectTheme","eventData","detail","argsDataframe","argsDataframeArrow","_a","toArrowTable","fromEntries","df","postMessage","isStreamlitMessage","style","head","appendChild","innerHTML","primaryColor","backgroundColor","secondaryBackgroundColor","textColor","font","__extends","extendStatics","__","StreamlitComponentBase","_super","componentDidMount","componentDidUpdate","PureComponent","withStreamlitConnection","ComponentWrapper","onRenderEvent","state","componentError","componentWillUnmount","renderEvent","setState","renderData","width","innerWidth","hoistNonReactStatics$1","StyleSheet","_insertTag","tag","before","tags","insertionPoint","nextSibling","container","firstChild","insertBefore","isSpeedy","speedy","ctr","nonce","_proto","hydrate","rule","setAttribute","createTextNode","createStyleElement","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","process","parentNode","removeChild","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","abs","trim","pattern","replacement","indexof","charat","strlen","sizeof","combine","line","character","characters","root","copy","caret","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","identifier","compile","parse","rules","rulesets","pseudo","points","declarations","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","z","prefix","hash","output","rulesheet","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","ssrStyles","querySelectorAll","getAttribute","stylisPlugins","_insert","nodesToHydrate","attrib","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","collection","middleware","selector","shouldCache","_taggedTemplateLiteral","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","getRawTag","objectToString","symToStringTag","__esModule","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","range","createRange","reactPropsRegex","isPropValid","prop","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","newStyled","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","Styled","FinalTag","as","classInterpolations","finalShouldForwardProp","withComponent","nextTag","nextOptions","tagName","q","w","A","B","C","encodeURIComponent","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","K","__self","__source","M","g","$$typeof","_owner","O","P","Q","keyPrefix","S","V","U","escape","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","_context","createFactory","createRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useDebugValue","useEffect","useImperativeHandle","useMemo","useReducer","useRef","useState","onError","da","ea","fa","ha","ia","ja","la","ma","na","oa","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","toUpperCase","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttributeNS","Ya","Za","$a","ab","cb","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","_debugOwner","_debugSource","fileName","lineNumber","sb","nodeName","xb","_valueTracker","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Fb","Hb","selected","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","Zb","$b","ac","bc","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","gridArea","lineClamp","kd","ld","md","setProperty","charAt","substring","nd","menuitem","area","br","embed","hr","img","keygen","link","meta","param","track","wbr","od","is","qd","rd","sd","td","ud","vd","xd","HTMLIFrameElement","contentWindow","location","href","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","setTimeout","Id","clearTimeout","Jd","Kd","previousSibling","Ld","random","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","persist","isTrusted","extend","he","ie","je","ke","documentMode","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","re","se","ve","locale","which","te","ctrlKey","altKey","metaKey","char","ue","we","color","date","datetime","email","month","password","tel","text","time","url","week","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","repeat","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","documentElement","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","onClick","onclick","createElementNS","ti","ui","wi","xi","yi","zi","Ai","stack","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","display","Ui","Vi","add","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","timeout","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","contains","compareDocumentPosition","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","vb","Uj","Vj","Wj","hidden","default","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","async","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","baseRange","isIterateeCall","toFinite","fromRight","nativeCeil","nativeMax","isArrayLike","isIndex","isLength","baseGetTag","freeGlobal","freeSelf","global","objectProto","nativeObjectToString","isOwn","unmasked","reIsUint","toNumber","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","trimmedEndIndex","reTrimStart","reWhitespace","isObjectLike"],"mappings":"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","file":"static/js/2.6704e1cc.chunk.js","sourcesContent":["function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import * as React from 'react';\nimport { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : function useInsertionEffect(create) {\n create();\n};\nfunction useInsertionEffectMaybe(create) {\n\n useInsertionEffect(create);\n}\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectMaybe(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, useTheme as a, ThemeProvider as b, createEmotionProps as c, withTheme as d, hasOwnProperty as h, useInsertionEffectMaybe as u, withEmotionCache as w };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","import * as React from 'react';\nimport { createElement, useLayoutEffect, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, u as useInsertionEffectMaybe } from './emotion-element-cbed451f.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, b as ThemeProvider, _ as __unsafe_useEmotionCache, a as useTheme, w as withEmotionCache, d as withTheme } from './emotion-element-cbed451f.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.9.0\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/babel-plugin\": \"^11.7.1\",\n\t\t\"@emotion/cache\": \"^11.7.1\",\n\t\t\"@emotion/serialize\": \"^1.0.3\",\n\t\t\"@emotion/utils\": \"^1.1.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.9.0\",\n\t\t\"@emotion/css-prettifier\": \"1.0.1\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.8.1\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^4.2.1\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : useLayoutEffect;\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffect(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffect(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectMaybe(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap()\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap()\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event)\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n )\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n )\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault()\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n })\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true })\n\n // Define accessors\n const keys = Object.keys(event)\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key))\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation()\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this)\n\n data.stopped = true\n data.immediateStopped = true\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation()\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this))\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this))\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n})\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype)\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event)\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto)\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event)\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n })\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key)\n const isFunc = typeof descriptor.value === \"function\"\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n )\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto)\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto)\n wrappers.set(proto, wrapper)\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nexport function wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event))\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nexport function isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nexport function setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nexport function setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nexport function setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener\n}\n","import {\n isStopped,\n setCurrentTarget,\n setEventPhase,\n setPassiveListener,\n wrapEvent,\n} from \"./event.mjs\"\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap()\n\n// Listener types\nconst CAPTURE = 1\nconst BUBBLE = 2\nconst ATTRIBUTE = 3\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget)\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this)\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this)\n\n // Traverse to the tail while removing old value.\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n node = node.next\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n }\n if (prev === null) {\n listeners.set(eventName, newNode)\n } else {\n prev.next = newNode\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n )\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this)\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n })\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i])\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map())\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length)\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i]\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this)\n const optionsIsObj = isObject(options)\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n }\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName)\n if (node === undefined) {\n listeners.set(eventName, newNode)\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node\n node = node.next\n }\n\n // Add it.\n prev.next = newNode\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this)\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n return\n }\n\n prev = node\n node = node.next\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this)\n const eventName = event.type\n let node = listeners.get(eventName)\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event)\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n )\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent)\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err)\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent)\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next\n }\n setPassiveListener(wrappedEvent, null)\n setEventPhase(wrappedEvent, 0)\n setCurrentTarget(wrappedEvent, null)\n\n return !wrappedEvent.defaultPrevented\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n})\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype)\n}\n\nexport { defineEventAttribute, EventTarget }\nexport default EventTarget\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _AwaitValue(value) {\n this.wrapped = value;\n}","import AwaitValue from \"./AwaitValue\";\nexport default function _awaitAsyncGenerator(value) {\n return new AwaitValue(value);\n}","import AwaitValue from \"./AwaitValue\";\nexport default function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n var wrappedAwait = value instanceof AwaitValue;\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {\n if (wrappedAwait) {\n resume(key === \"return\" ? \"return\" : \"next\", arg);\n return;\n }\n\n settle(result.done ? \"return\" : \"normal\", arg);\n }, function (err) {\n resume(\"throw\", err);\n });\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen[\"return\"] !== \"function\") {\n this[\"return\"] = undefined;\n }\n}\n\nif (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n}\n\nAsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n};\n\nAsyncGenerator.prototype[\"throw\"] = function (arg) {\n return this._invoke(\"throw\", arg);\n};\n\nAsyncGenerator.prototype[\"return\"] = function (arg) {\n return this._invoke(\"return\", arg);\n};","import AsyncGenerator from \"./AsyncGenerator\";\nexport default function _wrapAsyncGenerator(fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n}","export default function _asyncGeneratorDelegate(inner, awaitWrap) {\n var iter = {},\n waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function (resolve) {\n resolve(inner[key](value));\n });\n return {\n done: false,\n value: awaitWrap(value)\n };\n }\n\n ;\n\n if (typeof Symbol === \"function\" && Symbol.iterator) {\n iter[Symbol.iterator] = function () {\n return this;\n };\n }\n\n iter.next = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump(\"next\", value);\n };\n\n if (typeof inner[\"throw\"] === \"function\") {\n iter[\"throw\"] = function (value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n\n return pump(\"throw\", value);\n };\n }\n\n if (typeof inner[\"return\"] === \"function\") {\n iter[\"return\"] = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump(\"return\", value);\n };\n }\n\n return iter;\n}","/// @file\n/// @addtogroup flatbuffers_javascript_api\n/// @{\n/// @cond FLATBUFFERS_INTERNAL\n\n/**\n * @fileoverview\n *\n * Need to suppress 'global this' error so the Node.js export line doesn't cause\n * closure compile to error out.\n * @suppress {globalThis}\n */\n\n/**\n * @const\n * @namespace\n */\nvar flatbuffers = {};\n\n/**\n * @typedef {number}\n */\nflatbuffers.Offset;\n\n/**\n * @typedef {{\n * bb: flatbuffers.ByteBuffer,\n * bb_pos: number\n * }}\n */\nflatbuffers.Table;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_SHORT = 2;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_INT = 4;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.FILE_IDENTIFIER_LENGTH = 4;\n\n/**\n * @enum {number}\n */\nflatbuffers.Encoding = {\n UTF8_BYTES: 1,\n UTF16_STRING: 2\n};\n\n/**\n * @type {Int32Array}\n * @const\n */\nflatbuffers.int32 = new Int32Array(2);\n\n/**\n * @type {Float32Array}\n * @const\n */\nflatbuffers.float32 = new Float32Array(flatbuffers.int32.buffer);\n\n/**\n * @type {Float64Array}\n * @const\n */\nflatbuffers.float64 = new Float64Array(flatbuffers.int32.buffer);\n\n/**\n * @type {boolean}\n * @const\n */\nflatbuffers.isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @constructor\n * @param {number} low\n * @param {number} high\n */\nflatbuffers.Long = function(low, high) {\n /**\n * @type {number}\n * @const\n */\n this.low = low | 0;\n\n /**\n * @type {number}\n * @const\n */\n this.high = high | 0;\n};\n\n/**\n * @param {number} low\n * @param {number} high\n * @returns {flatbuffers.Long}\n */\nflatbuffers.Long.create = function(low, high) {\n // Special-case zero to avoid GC overhead for default values\n return low == 0 && high == 0 ? flatbuffers.Long.ZERO : new flatbuffers.Long(low, high);\n};\n\n/**\n * @returns {number}\n */\nflatbuffers.Long.prototype.toFloat64 = function() {\n return (this.low >>> 0) + this.high * 0x100000000;\n};\n\n/**\n * @param {flatbuffers.Long} other\n * @returns {boolean}\n */\nflatbuffers.Long.prototype.equals = function(other) {\n return this.low == other.low && this.high == other.high;\n};\n\n/**\n * @type {flatbuffers.Long}\n * @const\n */\nflatbuffers.Long.ZERO = new flatbuffers.Long(0, 0);\n\n/// @endcond\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a FlatBufferBuilder.\n *\n * @constructor\n * @param {number=} opt_initial_size\n */\nflatbuffers.Builder = function(opt_initial_size) {\n if (!opt_initial_size) {\n var initial_size = 1024;\n } else {\n var initial_size = opt_initial_size;\n }\n\n /**\n * @type {flatbuffers.ByteBuffer}\n * @private\n */\n this.bb = flatbuffers.ByteBuffer.allocate(initial_size);\n\n /**\n * Remaining space in the ByteBuffer.\n *\n * @type {number}\n * @private\n */\n this.space = initial_size;\n\n /**\n * Minimum alignment encountered so far.\n *\n * @type {number}\n * @private\n */\n this.minalign = 1;\n\n /**\n * The vtable for the current table.\n *\n * @type {Array.}\n * @private\n */\n this.vtable = null;\n\n /**\n * The amount of fields we're actually using.\n *\n * @type {number}\n * @private\n */\n this.vtable_in_use = 0;\n\n /**\n * Whether we are currently serializing a table.\n *\n * @type {boolean}\n * @private\n */\n this.isNested = false;\n\n /**\n * Starting offset of the current struct/table.\n *\n * @type {number}\n * @private\n */\n this.object_start = 0;\n\n /**\n * List of offsets of all vtables.\n *\n * @type {Array.}\n * @private\n */\n this.vtables = [];\n\n /**\n * For the current vector being built.\n *\n * @type {number}\n * @private\n */\n this.vector_num_elems = 0;\n\n /**\n * False omits default values from the serialized data\n *\n * @type {boolean}\n * @private\n */\n this.force_defaults = false;\n};\n\nflatbuffers.Builder.prototype.clear = function() {\n this.bb.clear();\n this.space = this.bb.capacity();\n this.minalign = 1;\n this.vtable = null;\n this.vtable_in_use = 0;\n this.isNested = false;\n this.object_start = 0;\n this.vtables = [];\n this.vector_num_elems = 0;\n this.force_defaults = false;\n};\n\n/**\n * In order to save space, fields that are set to their default value\n * don't get serialized into the buffer. Forcing defaults provides a\n * way to manually disable this optimization.\n *\n * @param {boolean} forceDefaults true always serializes default values\n */\nflatbuffers.Builder.prototype.forceDefaults = function(forceDefaults) {\n this.force_defaults = forceDefaults;\n};\n\n/**\n * Get the ByteBuffer representing the FlatBuffer. Only call this after you've\n * called finish(). The actual data starts at the ByteBuffer's current position,\n * not necessarily at 0.\n *\n * @returns {flatbuffers.ByteBuffer}\n */\nflatbuffers.Builder.prototype.dataBuffer = function() {\n return this.bb;\n};\n\n/**\n * Get the bytes representing the FlatBuffer. Only call this after you've\n * called finish().\n *\n * @returns {Uint8Array}\n */\nflatbuffers.Builder.prototype.asUint8Array = function() {\n return this.bb.bytes().subarray(this.bb.position(), this.bb.position() + this.offset());\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Prepare to write an element of `size` after `additional_bytes` have been\n * written, e.g. if you write a string, you need to align such the int length\n * field is aligned to 4 bytes, and the string data follows it directly. If all\n * you need to do is alignment, `additional_bytes` will be 0.\n *\n * @param {number} size This is the of the new element to write\n * @param {number} additional_bytes The padding size\n */\nflatbuffers.Builder.prototype.prep = function(size, additional_bytes) {\n // Track the biggest thing we've ever aligned to.\n if (size > this.minalign) {\n this.minalign = size;\n }\n\n // Find the amount of alignment needed such that `size` is properly\n // aligned after `additional_bytes`\n var align_size = ((~(this.bb.capacity() - this.space + additional_bytes)) + 1) & (size - 1);\n\n // Reallocate the buffer if needed.\n while (this.space < align_size + size + additional_bytes) {\n var old_buf_size = this.bb.capacity();\n this.bb = flatbuffers.Builder.growByteBuffer(this.bb);\n this.space += this.bb.capacity() - old_buf_size;\n }\n\n this.pad(align_size);\n};\n\n/**\n * @param {number} byte_size\n */\nflatbuffers.Builder.prototype.pad = function(byte_size) {\n for (var i = 0; i < byte_size; i++) {\n this.bb.writeInt8(--this.space, 0);\n }\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt8 = function(value) {\n this.bb.writeInt8(this.space -= 1, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt16 = function(value) {\n this.bb.writeInt16(this.space -= 2, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt32 = function(value) {\n this.bb.writeInt32(this.space -= 4, value);\n};\n\n/**\n * @param {flatbuffers.Long} value\n */\nflatbuffers.Builder.prototype.writeInt64 = function(value) {\n this.bb.writeInt64(this.space -= 8, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat32 = function(value) {\n this.bb.writeFloat32(this.space -= 4, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat64 = function(value) {\n this.bb.writeFloat64(this.space -= 8, value);\n};\n/// @endcond\n\n/**\n * Add an `int8` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int8` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt8 = function(value) {\n this.prep(1, 0);\n this.writeInt8(value);\n};\n\n/**\n * Add an `int16` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int16` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt16 = function(value) {\n this.prep(2, 0);\n this.writeInt16(value);\n};\n\n/**\n * Add an `int32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt32 = function(value) {\n this.prep(4, 0);\n this.writeInt32(value);\n};\n\n/**\n * Add an `int64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {flatbuffers.Long} value The `int64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt64 = function(value) {\n this.prep(8, 0);\n this.writeInt64(value);\n};\n\n/**\n * Add a `float32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat32 = function(value) {\n this.prep(4, 0);\n this.writeFloat32(value);\n};\n\n/**\n * Add a `float64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat64 = function(value) {\n this.prep(8, 0);\n this.writeFloat64(value);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt8 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt8(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt16 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt16(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Long} value\n * @param {flatbuffers.Long} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || !value.equals(defaultValue)) {\n this.addInt64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldOffset = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addOffset(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structs are stored inline, so nothing additional is being added. `d` is always 0.\n *\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldStruct = function(voffset, value, defaultValue) {\n if (value != defaultValue) {\n this.nested(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structures are always stored inline, they need to be created right\n * where they're used. You'll get this assertion failure if you\n * created it elsewhere.\n *\n * @param {flatbuffers.Offset} obj The offset of the created object\n */\nflatbuffers.Builder.prototype.nested = function(obj) {\n if (obj != this.offset()) {\n throw new Error('FlatBuffers: struct must be serialized inline.');\n }\n};\n\n/**\n * Should not be creating any other object, string or vector\n * while an object is being constructed\n */\nflatbuffers.Builder.prototype.notNested = function() {\n if (this.isNested) {\n throw new Error('FlatBuffers: object serialization must not be nested.');\n }\n};\n\n/**\n * Set the current vtable at `voffset` to the current location in the buffer.\n *\n * @param {number} voffset\n */\nflatbuffers.Builder.prototype.slot = function(voffset) {\n this.vtable[voffset] = this.offset();\n};\n\n/**\n * @returns {flatbuffers.Offset} Offset relative to the end of the buffer.\n */\nflatbuffers.Builder.prototype.offset = function() {\n return this.bb.capacity() - this.space;\n};\n\n/**\n * Doubles the size of the backing ByteBuffer and copies the old data towards\n * the end of the new buffer (since we build the buffer backwards).\n *\n * @param {flatbuffers.ByteBuffer} bb The current buffer with the existing data\n * @returns {flatbuffers.ByteBuffer} A new byte buffer with the old data copied\n * to it. The data is located at the end of the buffer.\n *\n * uint8Array.set() formally takes {Array|ArrayBufferView}, so to pass\n * it a uint8Array we need to suppress the type check:\n * @suppress {checkTypes}\n */\nflatbuffers.Builder.growByteBuffer = function(bb) {\n var old_buf_size = bb.capacity();\n\n // Ensure we don't grow beyond what fits in an int.\n if (old_buf_size & 0xC0000000) {\n throw new Error('FlatBuffers: cannot grow buffer beyond 2 gigabytes.');\n }\n\n var new_buf_size = old_buf_size << 1;\n var nbb = flatbuffers.ByteBuffer.allocate(new_buf_size);\n nbb.setPosition(new_buf_size - old_buf_size);\n nbb.bytes().set(bb.bytes(), new_buf_size - old_buf_size);\n return nbb;\n};\n/// @endcond\n\n/**\n * Adds on offset, relative to where it will be written.\n *\n * @param {flatbuffers.Offset} offset The offset to add.\n */\nflatbuffers.Builder.prototype.addOffset = function(offset) {\n this.prep(flatbuffers.SIZEOF_INT, 0); // Ensure alignment is already done.\n this.writeInt32(this.offset() - offset + flatbuffers.SIZEOF_INT);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Start encoding a new object in the buffer. Users will not usually need to\n * call this directly. The FlatBuffers compiler will generate helper methods\n * that call this method internally.\n *\n * @param {number} numfields\n */\nflatbuffers.Builder.prototype.startObject = function(numfields) {\n this.notNested();\n if (this.vtable == null) {\n this.vtable = [];\n }\n this.vtable_in_use = numfields;\n for (var i = 0; i < numfields; i++) {\n this.vtable[i] = 0; // This will push additional elements as needed\n }\n this.isNested = true;\n this.object_start = this.offset();\n};\n\n/**\n * Finish off writing the object that is under construction.\n *\n * @returns {flatbuffers.Offset} The offset to the object inside `dataBuffer`\n */\nflatbuffers.Builder.prototype.endObject = function() {\n if (this.vtable == null || !this.isNested) {\n throw new Error('FlatBuffers: endObject called without startObject');\n }\n\n this.addInt32(0);\n var vtableloc = this.offset();\n\n // Trim trailing zeroes.\n var i = this.vtable_in_use - 1;\n for (; i >= 0 && this.vtable[i] == 0; i--) {}\n var trimmed_size = i + 1;\n\n // Write out the current vtable.\n for (; i >= 0; i--) {\n // Offset relative to the start of the table.\n this.addInt16(this.vtable[i] != 0 ? vtableloc - this.vtable[i] : 0);\n }\n\n var standard_fields = 2; // The fields below:\n this.addInt16(vtableloc - this.object_start);\n var len = (trimmed_size + standard_fields) * flatbuffers.SIZEOF_SHORT;\n this.addInt16(len);\n\n // Search for an existing vtable that matches the current one.\n var existing_vtable = 0;\n var vt1 = this.space;\nouter_loop:\n for (i = 0; i < this.vtables.length; i++) {\n var vt2 = this.bb.capacity() - this.vtables[i];\n if (len == this.bb.readInt16(vt2)) {\n for (var j = flatbuffers.SIZEOF_SHORT; j < len; j += flatbuffers.SIZEOF_SHORT) {\n if (this.bb.readInt16(vt1 + j) != this.bb.readInt16(vt2 + j)) {\n continue outer_loop;\n }\n }\n existing_vtable = this.vtables[i];\n break;\n }\n }\n\n if (existing_vtable) {\n // Found a match:\n // Remove the current vtable.\n this.space = this.bb.capacity() - vtableloc;\n\n // Point table to existing vtable.\n this.bb.writeInt32(this.space, existing_vtable - vtableloc);\n } else {\n // No match:\n // Add the location of the current vtable to the list of vtables.\n this.vtables.push(this.offset());\n\n // Point table to current vtable.\n this.bb.writeInt32(this.bb.capacity() - vtableloc, this.offset() - vtableloc);\n }\n\n this.isNested = false;\n return vtableloc;\n};\n/// @endcond\n\n/**\n * Finalize a buffer, poiting to the given `root_table`.\n *\n * @param {flatbuffers.Offset} root_table\n * @param {string=} opt_file_identifier\n */\nflatbuffers.Builder.prototype.finish = function(root_table, opt_file_identifier) {\n if (opt_file_identifier) {\n var file_identifier = opt_file_identifier;\n this.prep(this.minalign, flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n if (file_identifier.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = flatbuffers.FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) {\n this.writeInt8(file_identifier.charCodeAt(i));\n }\n }\n this.prep(this.minalign, flatbuffers.SIZEOF_INT);\n this.addOffset(root_table);\n this.bb.setPosition(this.space);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * This checks a required field has been set in a given table that has\n * just been constructed.\n *\n * @param {flatbuffers.Offset} table\n * @param {number} field\n */\nflatbuffers.Builder.prototype.requiredField = function(table, field) {\n var table_start = this.bb.capacity() - table;\n var vtable_start = table_start - this.bb.readInt32(table_start);\n var ok = this.bb.readInt16(vtable_start + field) != 0;\n\n // If this fails, the caller will show what field needs to be set.\n if (!ok) {\n throw new Error('FlatBuffers: field ' + field + ' must be set');\n }\n};\n\n/**\n * Start a new array/vector of objects. Users usually will not call\n * this directly. The FlatBuffers compiler will create a start/end\n * method for vector types in generated code.\n *\n * @param {number} elem_size The size of each element in the array\n * @param {number} num_elems The number of elements in the array\n * @param {number} alignment The alignment of the array\n */\nflatbuffers.Builder.prototype.startVector = function(elem_size, num_elems, alignment) {\n this.notNested();\n this.vector_num_elems = num_elems;\n this.prep(flatbuffers.SIZEOF_INT, elem_size * num_elems);\n this.prep(alignment, elem_size * num_elems); // Just in case alignment > int.\n};\n\n/**\n * Finish off the creation of an array and all its elements. The array must be\n * created with `startVector`.\n *\n * @returns {flatbuffers.Offset} The offset at which the newly created array\n * starts.\n */\nflatbuffers.Builder.prototype.endVector = function() {\n this.writeInt32(this.vector_num_elems);\n return this.offset();\n};\n/// @endcond\n\n/**\n * Encode the string `s` in the buffer using UTF-8. If a Uint8Array is passed\n * instead of a string, it is assumed to contain valid UTF-8 encoded data.\n *\n * @param {string|Uint8Array} s The string to encode\n * @return {flatbuffers.Offset} The offset in the buffer where the encoded string starts\n */\nflatbuffers.Builder.prototype.createString = function(s) {\n if (s instanceof Uint8Array) {\n var utf8 = s;\n } else {\n var utf8 = [];\n var i = 0;\n\n while (i < s.length) {\n var codePoint;\n\n // Decode UTF-16\n var a = s.charCodeAt(i++);\n if (a < 0xD800 || a >= 0xDC00) {\n codePoint = a;\n } else {\n var b = s.charCodeAt(i++);\n codePoint = (a << 10) + b + (0x10000 - (0xD800 << 10) - 0xDC00);\n }\n\n // Encode UTF-8\n if (codePoint < 0x80) {\n utf8.push(codePoint);\n } else {\n if (codePoint < 0x800) {\n utf8.push(((codePoint >> 6) & 0x1F) | 0xC0);\n } else {\n if (codePoint < 0x10000) {\n utf8.push(((codePoint >> 12) & 0x0F) | 0xE0);\n } else {\n utf8.push(\n ((codePoint >> 18) & 0x07) | 0xF0,\n ((codePoint >> 12) & 0x3F) | 0x80);\n }\n utf8.push(((codePoint >> 6) & 0x3F) | 0x80);\n }\n utf8.push((codePoint & 0x3F) | 0x80);\n }\n }\n }\n\n this.addInt8(0);\n this.startVector(1, utf8.length, 1);\n this.bb.setPosition(this.space -= utf8.length);\n for (var i = 0, offset = this.space, bytes = this.bb.bytes(); i < utf8.length; i++) {\n bytes[offset++] = utf8[i];\n }\n return this.endVector();\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {flatbuffers.Long}\n */\nflatbuffers.Builder.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n////////////////////////////////////////////////////////////////////////////////\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Create a new ByteBuffer with a given array of bytes (`Uint8Array`).\n *\n * @constructor\n * @param {Uint8Array} bytes\n */\nflatbuffers.ByteBuffer = function(bytes) {\n /**\n * @type {Uint8Array}\n * @private\n */\n this.bytes_ = bytes;\n\n /**\n * @type {number}\n * @private\n */\n this.position_ = 0;\n};\n\n/**\n * Create and allocate a new ByteBuffer with a given size.\n *\n * @param {number} byte_size\n * @returns {flatbuffers.ByteBuffer}\n */\nflatbuffers.ByteBuffer.allocate = function(byte_size) {\n return new flatbuffers.ByteBuffer(new Uint8Array(byte_size));\n};\n\nflatbuffers.ByteBuffer.prototype.clear = function() {\n this.position_ = 0;\n};\n\n/**\n * Get the underlying `Uint8Array`.\n *\n * @returns {Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.bytes = function() {\n return this.bytes_;\n};\n\n/**\n * Get the buffer's position.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.position = function() {\n return this.position_;\n};\n\n/**\n * Set the buffer's position.\n *\n * @param {number} position\n */\nflatbuffers.ByteBuffer.prototype.setPosition = function(position) {\n this.position_ = position;\n};\n\n/**\n * Get the buffer's capacity.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.capacity = function() {\n return this.bytes_.length;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt8 = function(offset) {\n return this.readUint8(offset) << 24 >> 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint8 = function(offset) {\n return this.bytes_[offset];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt16 = function(offset) {\n return this.readUint16(offset) << 16 >> 16;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint16 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt32 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint32 = function(offset) {\n return this.readInt32(offset) >>> 0;\n};\n\n/**\n * @param {number} offset\n * @returns {flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readInt64 = function(offset) {\n return new flatbuffers.Long(this.readInt32(offset), this.readInt32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readUint64 = function(offset) {\n return new flatbuffers.Long(this.readUint32(offset), this.readUint32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat32 = function(offset) {\n flatbuffers.int32[0] = this.readInt32(offset);\n return flatbuffers.float32[0];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat64 = function(offset) {\n flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1] = this.readInt32(offset);\n flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0] = this.readInt32(offset + 4);\n return flatbuffers.float64[0];\n};\n\n/**\n * @param {number} offset\n * @param {number|boolean} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt8 = function(offset, value) {\n this.bytes_[offset] = /** @type {number} */(value);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint8 = function(offset, value) {\n this.bytes_[offset] = value;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt64 = function(offset, value) {\n this.writeInt32(offset, value.low);\n this.writeInt32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint64 = function(offset, value) {\n this.writeUint32(offset, value.low);\n this.writeUint32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat32 = function(offset, value) {\n flatbuffers.float32[0] = value;\n this.writeInt32(offset, flatbuffers.int32[0]);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat64 = function(offset, value) {\n flatbuffers.float64[0] = value;\n this.writeInt32(offset, flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1]);\n this.writeInt32(offset + 4, flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0]);\n};\n\n/**\n * Return the file identifier. Behavior is undefined for FlatBuffers whose\n * schema does not include a file_identifier (likely points at padding or the\n * start of a the root vtable).\n * @returns {string}\n */\nflatbuffers.ByteBuffer.prototype.getBufferIdentifier = function() {\n if (this.bytes_.length < this.position_ + flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error(\n 'FlatBuffers: ByteBuffer is too short to contain an identifier.');\n }\n var result = \"\";\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n result += String.fromCharCode(\n this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i));\n }\n return result;\n};\n\n/**\n * Look up a field in the vtable, return an offset into the object, or 0 if the\n * field is not present.\n *\n * @param {number} bb_pos\n * @param {number} vtable_offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__offset = function(bb_pos, vtable_offset) {\n var vtable = bb_pos - this.readInt32(bb_pos);\n return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0;\n};\n\n/**\n * Initialize any Table-derived type to point to the union at the given offset.\n *\n * @param {flatbuffers.Table} t\n * @param {number} offset\n * @returns {flatbuffers.Table}\n */\nflatbuffers.ByteBuffer.prototype.__union = function(t, offset) {\n t.bb_pos = offset + this.readInt32(offset);\n t.bb = this;\n return t;\n};\n\n/**\n * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer.\n * This allocates a new string and converts to wide chars upon each access.\n *\n * To avoid the conversion to UTF-16, pass flatbuffers.Encoding.UTF8_BYTES as\n * the \"optionalEncoding\" argument. This is useful for avoiding conversion to\n * and from UTF-16 when the data will just be packaged back up in another\n * FlatBuffer later on.\n *\n * @param {number} offset\n * @param {flatbuffers.Encoding=} opt_encoding Defaults to UTF16_STRING\n * @returns {string|Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.__string = function(offset, opt_encoding) {\n offset += this.readInt32(offset);\n\n var length = this.readInt32(offset);\n var result = '';\n var i = 0;\n\n offset += flatbuffers.SIZEOF_INT;\n\n if (opt_encoding === flatbuffers.Encoding.UTF8_BYTES) {\n return this.bytes_.subarray(offset, offset + length);\n }\n\n while (i < length) {\n var codePoint;\n\n // Decode UTF-8\n var a = this.readUint8(offset + i++);\n if (a < 0xC0) {\n codePoint = a;\n } else {\n var b = this.readUint8(offset + i++);\n if (a < 0xE0) {\n codePoint =\n ((a & 0x1F) << 6) |\n (b & 0x3F);\n } else {\n var c = this.readUint8(offset + i++);\n if (a < 0xF0) {\n codePoint =\n ((a & 0x0F) << 12) |\n ((b & 0x3F) << 6) |\n (c & 0x3F);\n } else {\n var d = this.readUint8(offset + i++);\n codePoint =\n ((a & 0x07) << 18) |\n ((b & 0x3F) << 12) |\n ((c & 0x3F) << 6) |\n (d & 0x3F);\n }\n }\n }\n\n // Encode UTF-16\n if (codePoint < 0x10000) {\n result += String.fromCharCode(codePoint);\n } else {\n codePoint -= 0x10000;\n result += String.fromCharCode(\n (codePoint >> 10) + 0xD800,\n (codePoint & ((1 << 10) - 1)) + 0xDC00);\n }\n }\n\n return result;\n};\n\n/**\n * Retrieve the relative offset stored at \"offset\"\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__indirect = function(offset) {\n return offset + this.readInt32(offset);\n};\n\n/**\n * Get the start of data of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector = function(offset) {\n return offset + this.readInt32(offset) + flatbuffers.SIZEOF_INT; // data starts after the length\n};\n\n/**\n * Get the length of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector_len = function(offset) {\n return this.readInt32(offset + this.readInt32(offset));\n};\n\n/**\n * @param {string} ident\n * @returns {boolean}\n */\nflatbuffers.ByteBuffer.prototype.__has_identifier = function(ident) {\n if (ident.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n if (ident.charCodeAt(i) != this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n\n// Exports for Node.js and RequireJS\nexport { flatbuffers };\n\n/// @endcond\n/// @}\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n/** @interface */\nfunction Decoder() {}\nDecoder.prototype = {\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point, or |finished|.\n */\n handler: function(stream, bite) {}\n};\n\n/** @interface */\nfunction Encoder() {}\nEncoder.prototype = {\n /**\n * @param {Stream} stream The stream of code points being encoded.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit, or |finished|.\n */\n handler: function(stream, code_point) {}\n};\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexport {TextEncoder, TextDecoder};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { toUint8Array } from './buffer';\nimport {\n TextDecoder as TextDecoderPolyfill,\n TextEncoder as TextEncoderPolyfill,\n} from 'text-encoding-utf-8';\n\n/** @ignore @suppress {missingRequire} */\nconst _Buffer = typeof Buffer === 'function' ? Buffer : null;\n/** @ignore */\nconst useNativeEncoders = typeof TextDecoder === 'function' && typeof TextEncoder === 'function';\n\n/** @ignore */\nexport const decodeUtf8 = ((TextDecoder) => {\n if (useNativeEncoders || !_Buffer) {\n const decoder = new TextDecoder('utf-8');\n return (buffer?: ArrayBuffer | ArrayBufferView) => decoder.decode(buffer);\n }\n return (input: ArrayBufferLike | ArrayBufferView) => {\n const { buffer, byteOffset, length } = toUint8Array(input);\n return _Buffer.from(buffer, byteOffset, length).toString();\n };\n})(typeof TextDecoder !== 'undefined' ? TextDecoder : TextDecoderPolyfill);\n\n/** @ignore */\nexport const encodeUtf8 = ((TextEncoder) => {\n if (useNativeEncoders || !_Buffer) {\n const encoder = new TextEncoder();\n return (value?: string) => encoder.encode(value);\n }\n return (input = '') => toUint8Array(_Buffer.from(input, 'utf8'));\n})(typeof TextEncoder !== 'undefined' ? TextEncoder : TextEncoderPolyfill);\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './adapters';\n\n/** @ignore */\nexport const ITERATOR_DONE: any = Object.freeze({ done: true, value: void (0) });\n\n/** @ignore */\nexport type FileHandle = import('fs').promises.FileHandle;\n/** @ignore */\nexport type ArrowJSONLike = { schema: any; batches?: any[]; dictionaries?: any[]; };\n/** @ignore */\nexport type ReadableDOMStreamOptions = { type: 'bytes' | undefined, autoAllocateChunkSize?: number, highWaterMark?: number };\n\n/** @ignore */\nexport class ArrowJSON {\n // @ts-ignore\n constructor(private _json: ArrowJSONLike) {}\n public get schema(): any { return this._json['schema']; }\n public get batches(): any[] { return (this._json['batches'] || []) as any[]; }\n public get dictionaries(): any[] { return (this._json['dictionaries'] || []) as any[]; }\n}\n\n/** @ignore */\nexport interface Readable {\n\n readonly closed: Promise;\n cancel(reason?: any): Promise;\n\n read(size?: number | null): Promise;\n peek(size?: number | null): Promise;\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(size?: number | null): Promise>;\n}\n\n/** @ignore */\nexport interface Writable {\n readonly closed: Promise;\n close(): void;\n write(chunk: T): void;\n abort(reason?: any): void;\n}\n\n/** @ignore */\nexport interface ReadableWritable extends Readable, Writable {\n [Symbol.asyncIterator](): AsyncIterableIterator;\n toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream;\n toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n}\n\n/** @ignore */\nexport abstract class ReadableInterop {\n\n public abstract toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream;\n public abstract toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n\n public tee(): [ReadableStream, ReadableStream] {\n return this._getDOMStream().tee();\n }\n public pipe(writable: R, options?: { end?: boolean; }) {\n return this._getNodeStream().pipe(writable, options);\n }\n public pipeTo(writable: WritableStream, options?: PipeOptions) { return this._getDOMStream().pipeTo(writable, options); }\n public pipeThrough>(duplex: { writable: WritableStream, readable: R }, options?: PipeOptions) {\n return this._getDOMStream().pipeThrough(duplex, options);\n }\n\n protected _DOMStream?: ReadableStream;\n private _getDOMStream() {\n return this._DOMStream || (this._DOMStream = this.toDOMStream());\n }\n\n protected _nodeStream?: import('stream').Readable;\n private _getNodeStream() {\n return this._nodeStream || (this._nodeStream = this.toNodeStream());\n }\n}\n\n/** @ignore */\ntype Resolution = { resolve: (value?: T | PromiseLike) => void; reject: (reason?: any) => void; };\n\n/** @ignore */\nexport class AsyncQueue extends ReadableInterop\n implements AsyncIterableIterator, ReadableWritable {\n\n protected _values: TWritable[] = [];\n protected _error?: { error: any; };\n protected _closedPromise: Promise;\n protected _closedPromiseResolve?: (value?: any) => void;\n protected resolvers: Resolution>[] = [];\n\n constructor() {\n super();\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n\n public get closed(): Promise { return this._closedPromise; }\n public async cancel(reason?: any) { await this.return(reason); }\n public write(value: TWritable) {\n if (this._ensureOpen()) {\n this.resolvers.length <= 0\n ? (this._values.push(value))\n : (this.resolvers.shift()!.resolve({ done: false, value } as any));\n }\n }\n public abort(value?: any) {\n if (this._closedPromiseResolve) {\n this.resolvers.length <= 0\n ? (this._error = { error: value })\n : (this.resolvers.shift()!.reject({ done: true, value }));\n }\n }\n public close() {\n if (this._closedPromiseResolve) {\n const { resolvers } = this;\n while (resolvers.length > 0) {\n resolvers.shift()!.resolve(ITERATOR_DONE);\n }\n this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n }\n }\n\n public [Symbol.asyncIterator]() { return this; }\n public toDOMStream(options?: ReadableDOMStreamOptions) {\n return streamAdapters.toDOMStream(\n (this._closedPromiseResolve || this._error)\n ? (this as AsyncIterable)\n : (this._values as any) as Iterable,\n options);\n }\n public toNodeStream(options?: import('stream').ReadableOptions) {\n return streamAdapters.toNodeStream(\n (this._closedPromiseResolve || this._error)\n ? (this as AsyncIterable)\n : (this._values as any) as Iterable,\n options);\n }\n public async throw(_?: any) { await this.abort(_); return ITERATOR_DONE; }\n public async return(_?: any) { await this.close(); return ITERATOR_DONE; }\n\n public async read(size?: number | null): Promise { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise { return (await this.next(size, 'peek')).value; }\n public next(..._args: any[]): Promise> {\n if (this._values.length > 0) {\n return Promise.resolve({ done: false, value: this._values.shift()! } as any);\n } else if (this._error) {\n return Promise.reject({ done: true, value: this._error.error });\n } else if (!this._closedPromiseResolve) {\n return Promise.resolve(ITERATOR_DONE);\n } else {\n return new Promise>((resolve, reject) => {\n this.resolvers.push({ resolve, reject });\n });\n }\n }\n\n protected _ensureOpen() {\n if (this._closedPromiseResolve) {\n return true;\n }\n throw new Error(`${this} is closed`);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { ReadableInterop, ArrowJSONLike } from '../io/interfaces';\n\n/** @ignore */\ntype FSReadStream = import('fs').ReadStream;\n/** @ignore */\ntype FileHandle = import('fs').promises.FileHandle;\n\n/** @ignore */\nexport interface Subscription {\n unsubscribe: () => void;\n}\n\n/** @ignore */\nexport interface Observer {\n closed?: boolean;\n next: (value: T) => void;\n error: (err: any) => void;\n complete: () => void;\n}\n\n/** @ignore */\nexport interface Observable {\n subscribe: (observer: Observer) => Subscription;\n}\n\n/** @ignore */\nconst [BigIntCtor, BigIntAvailable] = (() => {\n const BigIntUnavailableError = () => { throw new Error('BigInt is not available in this environment'); };\n function BigIntUnavailable() { throw BigIntUnavailableError(); }\n BigIntUnavailable.asIntN = () => { throw BigIntUnavailableError(); };\n BigIntUnavailable.asUintN = () => { throw BigIntUnavailableError(); };\n return typeof BigInt !== 'undefined' ? [BigInt, true] : [ BigIntUnavailable, false];\n})() as [BigIntConstructor, boolean];\n\n/** @ignore */\nconst [BigInt64ArrayCtor, BigInt64ArrayAvailable] = (() => {\n const BigInt64ArrayUnavailableError = () => { throw new Error('BigInt64Array is not available in this environment'); };\n class BigInt64ArrayUnavailable {\n static get BYTES_PER_ELEMENT() { return 8; }\n static of() { throw BigInt64ArrayUnavailableError(); }\n static from() { throw BigInt64ArrayUnavailableError(); }\n constructor() { throw BigInt64ArrayUnavailableError(); }\n }\n return typeof BigInt64Array !== 'undefined' ? [BigInt64Array, true] : [ BigInt64ArrayUnavailable, false];\n})() as [BigInt64ArrayConstructor, boolean];\n\n/** @ignore */\nconst [BigUint64ArrayCtor, BigUint64ArrayAvailable] = (() => {\n const BigUint64ArrayUnavailableError = () => { throw new Error('BigUint64Array is not available in this environment'); };\n class BigUint64ArrayUnavailable {\n static get BYTES_PER_ELEMENT() { return 8; }\n static of() { throw BigUint64ArrayUnavailableError(); }\n static from() { throw BigUint64ArrayUnavailableError(); }\n constructor() { throw BigUint64ArrayUnavailableError(); }\n }\n return typeof BigUint64Array !== 'undefined' ? [BigUint64Array, true] : [ BigUint64ArrayUnavailable, false];\n})() as [BigUint64ArrayConstructor, boolean];\n\nexport { BigIntCtor as BigInt, BigIntAvailable };\nexport { BigInt64ArrayCtor as BigInt64Array, BigInt64ArrayAvailable };\nexport { BigUint64ArrayCtor as BigUint64Array, BigUint64ArrayAvailable };\n\n/** @ignore */ const isNumber = (x: any) => typeof x === 'number';\n/** @ignore */ const isBoolean = (x: any) => typeof x === 'boolean';\n/** @ignore */ const isFunction = (x: any) => typeof x === 'function';\n/** @ignore */\nexport const isObject = (x: any): x is Object => x != null && Object(x) === x;\n\n/** @ignore */\nexport const isPromise = (x: any): x is PromiseLike => {\n return isObject(x) && isFunction(x.then);\n};\n\n/** @ignore */\nexport const isObservable = (x: any): x is Observable => {\n return isObject(x) && isFunction(x.subscribe);\n};\n\n/** @ignore */\nexport const isIterable = (x: any): x is Iterable => {\n return isObject(x) && isFunction(x[Symbol.iterator]);\n};\n\n/** @ignore */\nexport const isAsyncIterable = (x: any): x is AsyncIterable => {\n return isObject(x) && isFunction(x[Symbol.asyncIterator]);\n};\n\n/** @ignore */\nexport const isArrowJSON = (x: any): x is ArrowJSONLike => {\n return isObject(x) && isObject(x['schema']);\n};\n\n/** @ignore */\nexport const isArrayLike = (x: any): x is ArrayLike => {\n return isObject(x) && isNumber(x['length']);\n};\n\n/** @ignore */\nexport const isIteratorResult = (x: any): x is IteratorResult => {\n return isObject(x) && ('done' in x) && ('value' in x);\n};\n\n/** @ignore */\nexport const isUnderlyingSink = (x: any): x is UnderlyingSink => {\n return isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['close']) &&\n isFunction(x['start']) &&\n isFunction(x['write']);\n};\n\n/** @ignore */\nexport const isFileHandle = (x: any): x is FileHandle => {\n return isObject(x) && isFunction(x['stat']) && isNumber(x['fd']);\n};\n\n/** @ignore */\nexport const isFSReadStream = (x: any): x is FSReadStream => {\n return isReadableNodeStream(x) && isNumber(( x)['bytesRead']);\n};\n\n/** @ignore */\nexport const isFetchResponse = (x: any): x is Response => {\n return isObject(x) && isReadableDOMStream(x['body']);\n};\n\n/** @ignore */\nexport const isWritableDOMStream = (x: any): x is WritableStream => {\n return isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['getWriter']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isReadableDOMStream = (x: any): x is ReadableStream => {\n return isObject(x) &&\n isFunction(x['cancel']) &&\n isFunction(x['getReader']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isWritableNodeStream = (x: any): x is NodeJS.WritableStream => {\n return isObject(x) &&\n isFunction(x['end']) &&\n isFunction(x['write']) &&\n isBoolean(x['writable']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isReadableNodeStream = (x: any): x is NodeJS.ReadableStream => {\n return isObject(x) &&\n isFunction(x['read']) &&\n isFunction(x['pipe']) &&\n isBoolean(x['readable']) &&\n !(x instanceof ReadableInterop);\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport { encodeUtf8 } from '../util/utf8';\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport { TypedArray, TypedArrayConstructor } from '../interfaces';\nimport { BigIntArray, BigIntArrayConstructor } from '../interfaces';\nimport { isPromise, isIterable, isAsyncIterable, isIteratorResult, BigInt64Array, BigUint64Array } from './compat';\n\n/** @ignore */\nconst SharedArrayBuf = (typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : ArrayBuffer);\n\n/** @ignore */\nfunction collapseContiguousByteRanges(chunks: Uint8Array[]) {\n let result = chunks[0] ? [chunks[0]] : [];\n let xOffset: number, yOffset: number, xLen: number, yLen: number;\n for (let x, y, i = 0, j = 0, n = chunks.length; ++i < n;) {\n x = result[j];\n y = chunks[i];\n // continue if x and y don't share the same underlying ArrayBuffer, or if x isn't before y\n if (!x || !y || x.buffer !== y.buffer || y.byteOffset < x.byteOffset) {\n y && (result[++j] = y);\n continue;\n }\n ({ byteOffset: xOffset, byteLength: xLen } = x);\n ({ byteOffset: yOffset, byteLength: yLen } = y);\n // continue if the byte ranges of x and y aren't contiguous\n if ((xOffset + xLen) < yOffset || (yOffset + yLen) < xOffset) {\n y && (result[++j] = y);\n continue;\n }\n result[j] = new Uint8Array(x.buffer, xOffset, yOffset - xOffset + yLen);\n }\n return result;\n}\n\n/** @ignore */\nexport function memcpy(target: TTarget, source: TSource, targetByteOffset = 0, sourceByteLength = source.byteLength) {\n const targetByteLength = target.byteLength;\n const dst = new Uint8Array(target.buffer, target.byteOffset, targetByteLength);\n const src = new Uint8Array(source.buffer, source.byteOffset, Math.min(sourceByteLength, targetByteLength));\n dst.set(src, targetByteOffset);\n return target;\n}\n\n/** @ignore */\nexport function joinUint8Arrays(chunks: Uint8Array[], size?: number | null): [Uint8Array, Uint8Array[], number] {\n // collapse chunks that share the same underlying ArrayBuffer and whose byte ranges overlap,\n // to avoid unnecessarily copying the bytes to do this buffer join. This is a common case during\n // streaming, where we may be reading partial byte ranges out of the same underlying ArrayBuffer\n let result = collapseContiguousByteRanges(chunks);\n let byteLength = result.reduce((x, b) => x + b.byteLength, 0);\n let source: Uint8Array, sliced: Uint8Array, buffer: Uint8Array | void;\n let offset = 0, index = -1, length = Math.min(size || Infinity, byteLength);\n for (let n = result.length; ++index < n;) {\n source = result[index];\n sliced = source.subarray(0, Math.min(source.length, length - offset));\n if (length <= (offset + sliced.length)) {\n if (sliced.length < source.length) {\n result[index] = source.subarray(sliced.length);\n } else if (sliced.length === source.length) { index++; }\n buffer ? memcpy(buffer, sliced, offset) : (buffer = sliced);\n break;\n }\n memcpy(buffer || (buffer = new Uint8Array(length)), sliced, offset);\n offset += sliced.length;\n }\n return [buffer || new Uint8Array(0), result.slice(index), byteLength - (buffer ? buffer.byteLength : 0)];\n}\n\n/** @ignore */\nexport type ArrayBufferViewInput = ArrayBufferView | ArrayBufferLike | ArrayBufferView | Iterable | ArrayLike | ByteBuffer | string | null | undefined |\n IteratorResult | ArrayLike | ByteBuffer | string | null | undefined> |\n ReadableStreamReadResult | ArrayLike | ByteBuffer | string | null | undefined> ;\n\n/** @ignore */\nexport function toArrayBufferView(ArrayBufferViewCtor: TypedArrayConstructor, input: ArrayBufferViewInput): T;\nexport function toArrayBufferView(ArrayBufferViewCtor: BigIntArrayConstructor, input: ArrayBufferViewInput): T;\nexport function toArrayBufferView(ArrayBufferViewCtor: any, input: ArrayBufferViewInput) {\n\n let value: any = isIteratorResult(input) ? input.value : input;\n\n if (value instanceof ArrayBufferViewCtor) {\n if (ArrayBufferViewCtor === Uint8Array) {\n // Node's `Buffer` class passes the `instanceof Uint8Array` check, but we need\n // a real Uint8Array, since Buffer#slice isn't the same as Uint8Array#slice :/\n return new ArrayBufferViewCtor(value.buffer, value.byteOffset, value.byteLength);\n }\n return value;\n }\n if (!value) { return new ArrayBufferViewCtor(0); }\n if (typeof value === 'string') { value = encodeUtf8(value); }\n if (value instanceof ArrayBuffer) { return new ArrayBufferViewCtor(value); }\n if (value instanceof SharedArrayBuf) { return new ArrayBufferViewCtor(value); }\n if (value instanceof ByteBuffer) { return toArrayBufferView(ArrayBufferViewCtor, value.bytes()); }\n return !ArrayBuffer.isView(value) ? ArrayBufferViewCtor.from(value) : value.byteLength <= 0 ? new ArrayBufferViewCtor(0)\n : new ArrayBufferViewCtor(value.buffer, value.byteOffset, value.byteLength / ArrayBufferViewCtor.BYTES_PER_ELEMENT);\n}\n\n/** @ignore */ export const toInt8Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int8Array, input);\n/** @ignore */ export const toInt16Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int16Array, input);\n/** @ignore */ export const toInt32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int32Array, input);\n/** @ignore */ export const toBigInt64Array = (input: ArrayBufferViewInput) => toArrayBufferView(BigInt64Array, input);\n/** @ignore */ export const toUint8Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint8Array, input);\n/** @ignore */ export const toUint16Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint16Array, input);\n/** @ignore */ export const toUint32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint32Array, input);\n/** @ignore */ export const toBigUint64Array = (input: ArrayBufferViewInput) => toArrayBufferView(BigUint64Array, input);\n/** @ignore */ export const toFloat32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Float32Array, input);\n/** @ignore */ export const toFloat64Array = (input: ArrayBufferViewInput) => toArrayBufferView(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArray = (input: ArrayBufferViewInput) => toArrayBufferView(Uint8ClampedArray, input);\n\n/** @ignore */\ntype ArrayBufferViewIteratorInput = Iterable | ArrayBufferViewInput;\n\n/** @ignore */\nconst pump = | AsyncIterator>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nexport function* toArrayBufferViewIterator(ArrayCtor: TypedArrayConstructor, source: ArrayBufferViewIteratorInput) {\n\n const wrap = function*(x: T) { yield x; };\n const buffers: Iterable =\n (typeof source === 'string') ? wrap(source)\n : (ArrayBuffer.isView(source)) ? wrap(source)\n : (source instanceof ArrayBuffer) ? wrap(source)\n : (source instanceof SharedArrayBuf) ? wrap(source)\n : !isIterable(source) ? wrap(source) : source;\n\n yield* pump((function* (it) {\n let r: IteratorResult = null;\n do {\n r = it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.iterator]()));\n}\n\n/** @ignore */ export const toInt8ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int8Array, input);\n/** @ignore */ export const toInt16ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int16Array, input);\n/** @ignore */ export const toInt32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int32Array, input);\n/** @ignore */ export const toUint8ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint8Array, input);\n/** @ignore */ export const toUint16ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint16Array, input);\n/** @ignore */ export const toUint32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint32Array, input);\n/** @ignore */ export const toFloat32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Float32Array, input);\n/** @ignore */ export const toFloat64ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint8ClampedArray, input);\n\n/** @ignore */\ntype ArrayBufferViewAsyncIteratorInput = AsyncIterable | Iterable | PromiseLike | ArrayBufferViewInput;\n\n/** @ignore */\nexport async function* toArrayBufferViewAsyncIterator(ArrayCtor: TypedArrayConstructor, source: ArrayBufferViewAsyncIteratorInput): AsyncIterableIterator {\n\n // if a Promise, unwrap the Promise and iterate the resolved value\n if (isPromise(source)) {\n return yield* toArrayBufferViewAsyncIterator(ArrayCtor, await source);\n }\n\n const wrap = async function*(x: T) { yield await x; };\n const emit = async function* >(source: T) {\n yield* pump((function*(it: Iterator) {\n let r: IteratorResult = null;\n do {\n r = it.next(yield r && r.value);\n } while (!r.done);\n })(source[Symbol.iterator]()));\n };\n\n const buffers: AsyncIterable =\n (typeof source === 'string') ? wrap(source) // if string, wrap in an AsyncIterableIterator\n : (ArrayBuffer.isView(source)) ? wrap(source) // if TypedArray, wrap in an AsyncIterableIterator\n : (source instanceof ArrayBuffer) ? wrap(source) // if ArrayBuffer, wrap in an AsyncIterableIterator\n : (source instanceof SharedArrayBuf) ? wrap(source) // if SharedArrayBuffer, wrap in an AsyncIterableIterator\n : isIterable(source) ? emit(source) // If Iterable, wrap in an AsyncIterableIterator and compose the `next` values\n : !isAsyncIterable(source) ? wrap(source) // If not an AsyncIterable, treat as a sentinel and wrap in an AsyncIterableIterator\n : source; // otherwise if AsyncIterable, use it\n\n yield* pump((async function* (it) {\n let r: IteratorResult = null;\n do {\n r = await it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.asyncIterator]()));\n}\n\n/** @ignore */ export const toInt8ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int8Array, input);\n/** @ignore */ export const toInt16ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int16Array, input);\n/** @ignore */ export const toInt32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int32Array, input);\n/** @ignore */ export const toUint8ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint8Array, input);\n/** @ignore */ export const toUint16ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint16Array, input);\n/** @ignore */ export const toUint32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint32Array, input);\n/** @ignore */ export const toFloat32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Float32Array, input);\n/** @ignore */ export const toFloat64ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint8ClampedArray, input);\n\n/** @ignore */\nexport function rebaseValueOffsets(offset: number, length: number, valueOffsets: Int32Array) {\n // If we have a non-zero offset, create a new offsets array with the values\n // shifted by the start offset, such that the new start offset is 0\n if (offset !== 0) {\n valueOffsets = valueOffsets.slice(0, length + 1);\n for (let i = -1; ++i <= length;) {\n valueOffsets[i] += offset;\n }\n }\n return valueOffsets;\n}\n\n/** @ignore */\nexport function compareArrayLike>(a: T, b: T) {\n let i = 0, n = a.length;\n if (n !== b.length) { return false; }\n if (n > 0) {\n do { if (a[i] !== b[i]) { return false; } } while (++i < n);\n }\n return true;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport {\n toUint8Array,\n joinUint8Arrays,\n ArrayBufferViewInput,\n toUint8ArrayIterator,\n toUint8ArrayAsyncIterator\n} from '../util/buffer';\n\nimport { ReadableDOMStreamOptions } from './interfaces';\n\n/** @ignore */\nexport default {\n fromIterable(source: Iterable | T): IterableIterator {\n return pump(fromIterable(source));\n },\n fromAsyncIterable(source: AsyncIterable | PromiseLike): AsyncIterableIterator {\n return pump(fromAsyncIterable(source));\n },\n fromDOMStream(source: ReadableStream): AsyncIterableIterator {\n return pump(fromDOMStream(source));\n },\n fromNodeStream(stream: NodeJS.ReadableStream): AsyncIterableIterator {\n return pump(fromNodeStream(stream));\n },\n // @ts-ignore\n toDOMStream(source: Iterable | AsyncIterable, options?: ReadableDOMStreamOptions): ReadableStream {\n throw new Error(`\"toDOMStream\" not available in this environment`);\n },\n // @ts-ignore\n toNodeStream(source: Iterable | AsyncIterable, options?: import('stream').ReadableOptions): import('stream').Readable {\n throw new Error(`\"toNodeStream\" not available in this environment`);\n },\n};\n\n/** @ignore */\nconst pump = | AsyncIterator>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nfunction* fromIterable(source: Iterable | T): IterableIterator {\n\n let done: boolean, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before creating the source Iterator\n ({ cmd, size } = yield null);\n\n // initialize the iterator\n let it = toUint8ArrayIterator(source)[Symbol.iterator]();\n\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength) ?\n it.next(undefined) : it.next(size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (it.throw(e));\n } finally {\n (threw === false) && (typeof it.return === 'function') && (it.return());\n }\n}\n\n/** @ignore */\nasync function* fromAsyncIterable(source: AsyncIterable | PromiseLike): AsyncIterableIterator {\n\n let done: boolean, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before creating the source AsyncIterator\n ({ cmd, size } = yield null);\n\n // initialize the iterator\n let it = toUint8ArrayAsyncIterator(source)[Symbol.asyncIterator]();\n\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength)\n ? await it.next(undefined)\n : await it.next(size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (await it.throw(e));\n } finally {\n (threw === false) && (typeof it.return === 'function') && (await it.return());\n }\n}\n\n// All this manual Uint8Array chunk management can be avoided if/when engines\n// add support for ArrayBuffer.transfer() or ArrayBuffer.prototype.realloc():\n// https://github.com/domenic/proposal-arraybuffer-transfer\n/** @ignore */\nasync function* fromDOMStream(source: ReadableStream): AsyncIterableIterator {\n\n let done = false, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before we establish the ReadableStream lock\n ({ cmd, size } = yield null);\n\n // initialize the reader and lock the stream\n let it = new AdaptiveByteReader(source);\n\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength)\n ? await it['read'](undefined)\n : await it['read'](size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(toUint8Array(buffer));\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } catch (e) {\n (threw = true) && (await it['cancel'](e));\n } finally {\n (threw === false) ? (await it['cancel']())\n : source['locked'] && it.releaseLock();\n }\n}\n\n/** @ignore */\nclass AdaptiveByteReader {\n\n private supportsBYOB: boolean;\n private byobReader: ReadableStreamBYOBReader | null = null;\n private defaultReader: ReadableStreamDefaultReader | null = null;\n private reader: ReadableStreamBYOBReader | ReadableStreamDefaultReader | null;\n\n constructor(private source: ReadableStream) {\n try {\n this.supportsBYOB = !!(this.reader = this.getBYOBReader());\n } catch (e) {\n this.supportsBYOB = !!!(this.reader = this.getDefaultReader());\n }\n }\n\n get closed(): Promise {\n return this.reader ? this.reader['closed'].catch(() => {}) : Promise.resolve();\n }\n\n releaseLock(): void {\n if (this.reader) {\n this.reader.releaseLock();\n }\n this.reader = this.byobReader = this.defaultReader = null;\n }\n\n async cancel(reason?: any): Promise {\n const { reader, source } = this;\n reader && (await reader['cancel'](reason).catch(() => {}));\n source && (source['locked'] && this.releaseLock());\n }\n\n async read(size?: number): Promise> {\n if (size === 0) {\n return { done: this.reader == null, value: new Uint8Array(0) };\n }\n const result = !this.supportsBYOB || typeof size !== 'number'\n ? await this.getDefaultReader().read()\n : await this.readFromBYOBReader(size);\n !result.done && (result.value = toUint8Array(result as ReadableStreamReadResult));\n return result as ReadableStreamReadResult;\n }\n\n private getDefaultReader() {\n if (this.byobReader) { this.releaseLock(); }\n if (!this.defaultReader) {\n this.defaultReader = this.source['getReader']();\n // We have to catch and swallow errors here to avoid uncaught promise rejection exceptions\n // that seem to be raised when we call `releaseLock()` on this reader. I'm still mystified\n // about why these errors are raised, but I'm sure there's some important spec reason that\n // I haven't considered. I hate to employ such an anti-pattern here, but it seems like the\n // only solution in this case :/\n this.defaultReader['closed'].catch(() => {});\n }\n return (this.reader = this.defaultReader);\n }\n\n private getBYOBReader() {\n if (this.defaultReader) { this.releaseLock(); }\n if (!this.byobReader) {\n this.byobReader = this.source['getReader']({ mode: 'byob' });\n // We have to catch and swallow errors here to avoid uncaught promise rejection exceptions\n // that seem to be raised when we call `releaseLock()` on this reader. I'm still mystified\n // about why these errors are raised, but I'm sure there's some important spec reason that\n // I haven't considered. I hate to employ such an anti-pattern here, but it seems like the\n // only solution in this case :/\n this.byobReader['closed'].catch(() => {});\n }\n return (this.reader = this.byobReader);\n }\n\n // This strategy plucked from the example in the streams spec:\n // https://streams.spec.whatwg.org/#example-manual-read-bytes\n private async readFromBYOBReader(size: number) {\n return await readInto(this.getBYOBReader(), new ArrayBuffer(size), 0, size);\n }\n}\n\n/** @ignore */\nasync function readInto(reader: ReadableStreamBYOBReader, buffer: ArrayBufferLike, offset: number, size: number): Promise> {\n if (offset >= size) {\n return { done: false, value: new Uint8Array(buffer, 0, size) };\n }\n const { done, value } = await reader.read(new Uint8Array(buffer, offset, size - offset));\n if (((offset += value.byteLength) < size) && !done) {\n return await readInto(reader, value.buffer, offset, size);\n }\n return { done, value: new Uint8Array(value.buffer, 0, offset) };\n}\n\n/** @ignore */\ntype EventName = 'end' | 'error' | 'readable';\n/** @ignore */\ntype Event = [EventName, (_: any) => void, Promise<[EventName, Error | null]>];\n/** @ignore */\nconst onEvent = (stream: NodeJS.ReadableStream, event: T) => {\n let handler = (_: any) => resolve([event, _]);\n let resolve: (value?: [T, any] | PromiseLike<[T, any]>) => void;\n return [event, handler, new Promise<[T, any]>(\n (r) => (resolve = r) && stream['once'](event, handler)\n )] as Event;\n};\n\n/** @ignore */\nasync function* fromNodeStream(stream: NodeJS.ReadableStream): AsyncIterableIterator {\n\n let events: Event[] = [];\n let event: EventName = 'error';\n let done = false, err: Error | null = null;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n let buffers: Uint8Array[] = [], buffer: Uint8Array | Buffer | string;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before we\n // add the listener for the source stream's 'readable' event.\n ({ cmd, size } = yield null);\n\n // ignore stdin if it's a TTY\n if ((stream as any)['isTTY']) { return yield new Uint8Array(0); }\n\n try {\n // initialize the stream event handlers\n events[0] = onEvent(stream, 'end');\n events[1] = onEvent(stream, 'error');\n\n do {\n events[2] = onEvent(stream, 'readable');\n\n // wait on the first message event from the stream\n [event, err] = await Promise.race(events.map((x) => x[2]));\n\n // if the stream emitted an Error, rethrow it\n if (event === 'error') { break; }\n if (!(done = event === 'end')) {\n // If the size is NaN, request to read everything in the stream's internal buffer\n if (!isFinite(size - bufferLength)) {\n buffer = toUint8Array(stream['read'](undefined));\n } else {\n buffer = toUint8Array(stream['read'](size - bufferLength));\n // If the byteLength is 0, then the requested amount is more than the stream has\n // in its internal buffer. In this case the stream needs a \"kick\" to tell it to\n // continue emitting readable events, so request to read everything the stream\n // has in its internal buffer right now.\n if (buffer.byteLength < (size - bufferLength)) {\n buffer = toUint8Array(stream['read'](undefined));\n }\n }\n // if chunk is not null or empty, push it onto the queue\n if (buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } finally {\n await cleanup(events, event === 'error' ? err : null);\n }\n\n function cleanup(events: Event[], err?: T) {\n buffer = buffers = null;\n return new Promise(async (resolve, reject) => {\n for (const [evt, fn] of events) {\n stream['off'](evt, fn);\n }\n try {\n // Some stream implementations don't call the destroy callback,\n // because it's really a node-internal API. Just calling `destroy`\n // here should be enough to conform to the ReadableStream contract\n const destroy = (stream as any)['destroy'];\n destroy && destroy.call(stream, err);\n err = undefined;\n } catch (e) { err = e || err; } finally {\n err != null ? reject(err) : resolve();\n }\n });\n }\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { DataType } from './type';\nimport { Chunked } from './vector/chunked';\n\n/** @ignore */\nexport interface Clonable {\n clone(...args: any[]): R;\n}\n\n/** @ignore */\nexport interface Sliceable {\n slice(begin?: number, end?: number): R;\n}\n\n/** @ignore */\nexport interface Applicative {\n concat(...others: Vector[]): R;\n readonly [Symbol.isConcatSpreadable]: boolean;\n}\n\nexport interface AbstractVector\n extends Clonable>,\n Sliceable>,\n Applicative> {\n\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\nexport abstract class AbstractVector implements Iterable {\n\n public abstract readonly data: Data;\n public abstract readonly type: T;\n public abstract readonly typeId: T['TType'];\n public abstract readonly length: number;\n public abstract readonly stride: number;\n public abstract readonly nullCount: number;\n public abstract readonly byteLength: number;\n public abstract readonly numChildren: number;\n\n public abstract readonly ArrayType: T['ArrayType'];\n\n public abstract isValid(index: number): boolean;\n public abstract get(index: number): T['TValue'] | null;\n public abstract set(index: number, value: T['TValue'] | null): void;\n public abstract indexOf(value: T['TValue'] | null, fromIndex?: number): number;\n public abstract [Symbol.iterator](): IterableIterator;\n\n public abstract toArray(): T['TArray'];\n public abstract getChildAt(index: number): Vector | null;\n}\n\nexport { AbstractVector as Vector };\n","/* tslint:disable:class-name */\n\n// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum MetadataVersion {\n /**\n * 0.1.0\n */\n V1 = 0,\n\n /**\n * 0.2.0\n */\n V2 = 1,\n\n /**\n * 0.3.0 -> 0.7.1\n */\n V3 = 2,\n\n /**\n * >= 0.8.0\n */\n V4 = 3\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum UnionMode {\n Sparse = 0,\n Dense = 1\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Precision {\n HALF = 0,\n SINGLE = 1,\n DOUBLE = 2\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum DateUnit {\n DAY = 0,\n MILLISECOND = 1\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum TimeUnit {\n SECOND = 0,\n MILLISECOND = 1,\n MICROSECOND = 2,\n NANOSECOND = 3\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum IntervalUnit {\n YEAR_MONTH = 0,\n DAY_TIME = 1\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Top-level Type value, enabling extensible type-specific metadata. We can\n * add new logical types to Type without breaking backwards compatibility\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Type {\n NONE = 0,\n Null = 1,\n Int = 2,\n FloatingPoint = 3,\n Binary = 4,\n Utf8 = 5,\n Bool = 6,\n Decimal = 7,\n Date = 8,\n Time = 9,\n Timestamp = 10,\n Interval = 11,\n List = 12,\n Struct_ = 13,\n Union = 14,\n FixedSizeBinary = 15,\n FixedSizeList = 16,\n Map = 17,\n Duration = 18,\n LargeBinary = 19,\n LargeUtf8 = 20,\n LargeList = 21\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Endianness of the platform producing the data\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Endianness {\n Little = 0,\n Big = 1\n }\n}\n\n/**\n * These are stored in the flatbuffer in the Type union below\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Null {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Null\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Null {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Null= obj\n * @returns Null\n */\n static getRootAsNull(bb: flatbuffers.ByteBuffer, obj?: Null): Null {\n return (obj || new Null).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startNull(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endNull(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createNull(builder: flatbuffers.Builder): flatbuffers.Offset {\n Null.startNull(builder);\n return Null.endNull(builder);\n }\n }\n}\n/**\n * A Struct_ in the flatbuffer metadata is the same as an Arrow Struct\n * (according to the physical memory layout). We used Struct_ here as\n * Struct is a reserved word in Flatbuffers\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Struct_ {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Struct_\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Struct_ {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Struct_= obj\n * @returns Struct_\n */\n static getRootAsStruct_(bb: flatbuffers.ByteBuffer, obj?: Struct_): Struct_ {\n return (obj || new Struct_).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startStruct_(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {\n Struct_.startStruct_(builder);\n return Struct_.endStruct_(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class List {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns List\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): List {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param List= obj\n * @returns List\n */\n static getRootAsList(bb: flatbuffers.ByteBuffer, obj?: List): List {\n return (obj || new List).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startList(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createList(builder: flatbuffers.Builder): flatbuffers.Offset {\n List.startList(builder);\n return List.endList(builder);\n }\n }\n}\n/**\n * Same as List, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeList {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeList\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeList {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeList= obj\n * @returns LargeList\n */\n static getRootAsLargeList(bb: flatbuffers.ByteBuffer, obj?: LargeList): LargeList {\n return (obj || new LargeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeList(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeList.startLargeList(builder);\n return LargeList.endLargeList(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FixedSizeList {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeList\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeList {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeList= obj\n * @returns FixedSizeList\n */\n static getRootAsFixedSizeList(bb: flatbuffers.ByteBuffer, obj?: FixedSizeList): FixedSizeList {\n return (obj || new FixedSizeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Number of list items per value\n *\n * @returns number\n */\n listSize(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeList(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number listSize\n */\n static addListSize(builder: flatbuffers.Builder, listSize: number) {\n builder.addFieldInt32(0, listSize, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFixedSizeList(builder: flatbuffers.Builder, listSize: number): flatbuffers.Offset {\n FixedSizeList.startFixedSizeList(builder);\n FixedSizeList.addListSize(builder, listSize);\n return FixedSizeList.endFixedSizeList(builder);\n }\n }\n}\n/**\n * A Map is a logical nested type that is represented as\n *\n * List>\n *\n * In this layout, the keys and values are each respectively contiguous. We do\n * not constrain the key and value types, so the application is responsible\n * for ensuring that the keys are hashable and unique. Whether the keys are sorted\n * may be set in the metadata for this field\n *\n * In a Field with Map type, the Field has a child Struct field, which then\n * has two children: key type and the second the value type. The names of the\n * child fields may be respectively \"entry\", \"key\", and \"value\", but this is\n * not enforced\n *\n * Map\n * - child[0] entry: Struct\n * - child[0] key: K\n * - child[1] value: V\n *\n * Neither the \"entry\" field nor the \"key\" field may be nullable.\n *\n * The metadata is structured so that Arrow systems without special handling\n * for Map can make Map an alias for List. The \"layout\" attribute for the Map\n * field must have the same contents as a List.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Map {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Map\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Map {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Map= obj\n * @returns Map\n */\n static getRootAsMap(bb: flatbuffers.ByteBuffer, obj?: Map): Map {\n return (obj || new Map).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Set to true if the keys within each value are sorted\n *\n * @returns boolean\n */\n keysSorted(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startMap(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean keysSorted\n */\n static addKeysSorted(builder: flatbuffers.Builder, keysSorted: boolean) {\n builder.addFieldInt8(0, +keysSorted, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMap(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createMap(builder: flatbuffers.Builder, keysSorted: boolean): flatbuffers.Offset {\n Map.startMap(builder);\n Map.addKeysSorted(builder, keysSorted);\n return Map.endMap(builder);\n }\n }\n}\n/**\n * A union is a complex type with children in Field\n * By default ids in the type vector refer to the offsets in the children\n * optionally typeIds provides an indirection between the child offset and the type id\n * for each child typeIds[offset] is the id used in the type vector\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Union {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Union\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Union {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Union= obj\n * @returns Union\n */\n static getRootAsUnion(bb: flatbuffers.ByteBuffer, obj?: Union): Union {\n return (obj || new Union).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.UnionMode\n */\n mode(): org.apache.arrow.flatbuf.UnionMode {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.UnionMode.Sparse;\n }\n\n /**\n * @param number index\n * @returns number\n */\n typeIds(index: number): number | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb!.__vector(this.bb_pos + offset) + index * 4) : 0;\n }\n\n /**\n * @returns number\n */\n typeIdsLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @returns Int32Array\n */\n typeIdsArray(): Int32Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? new Int32Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startUnion(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.UnionMode mode\n */\n static addMode(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode) {\n builder.addFieldInt16(0, mode, org.apache.arrow.flatbuf.UnionMode.Sparse);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeIdsOffset\n */\n static addTypeIds(builder: flatbuffers.Builder, typeIdsOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, typeIdsOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createTypeIdsVector(builder: flatbuffers.Builder, data: number[] | Int32Array): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt32(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startTypeIdsVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUnion(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createUnion(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode, typeIdsOffset: flatbuffers.Offset): flatbuffers.Offset {\n Union.startUnion(builder);\n Union.addMode(builder, mode);\n Union.addTypeIds(builder, typeIdsOffset);\n return Union.endUnion(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Int {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Int\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Int {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Int= obj\n * @returns Int\n */\n static getRootAsInt(bb: flatbuffers.ByteBuffer, obj?: Int): Int {\n return (obj || new Int).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @returns boolean\n */\n isSigned(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startInt(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {\n builder.addFieldInt32(0, bitWidth, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isSigned\n */\n static addIsSigned(builder: flatbuffers.Builder, isSigned: boolean) {\n builder.addFieldInt8(1, +isSigned, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInt(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createInt(builder: flatbuffers.Builder, bitWidth: number, isSigned: boolean): flatbuffers.Offset {\n Int.startInt(builder);\n Int.addBitWidth(builder, bitWidth);\n Int.addIsSigned(builder, isSigned);\n return Int.endInt(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FloatingPoint {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FloatingPoint\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FloatingPoint {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FloatingPoint= obj\n * @returns FloatingPoint\n */\n static getRootAsFloatingPoint(bb: flatbuffers.ByteBuffer, obj?: FloatingPoint): FloatingPoint {\n return (obj || new FloatingPoint).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.Precision\n */\n precision(): org.apache.arrow.flatbuf.Precision {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Precision.HALF;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFloatingPoint(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Precision precision\n */\n static addPrecision(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision) {\n builder.addFieldInt16(0, precision, org.apache.arrow.flatbuf.Precision.HALF);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFloatingPoint(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFloatingPoint(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision): flatbuffers.Offset {\n FloatingPoint.startFloatingPoint(builder);\n FloatingPoint.addPrecision(builder, precision);\n return FloatingPoint.endFloatingPoint(builder);\n }\n }\n}\n/**\n * Unicode with UTF-8 encoding\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Utf8 {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Utf8\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Utf8 {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Utf8= obj\n * @returns Utf8\n */\n static getRootAsUtf8(bb: flatbuffers.ByteBuffer, obj?: Utf8): Utf8 {\n return (obj || new Utf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startUtf8(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n Utf8.startUtf8(builder);\n return Utf8.endUtf8(builder);\n }\n }\n}\n/**\n * Opaque binary data\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Binary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Binary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Binary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Binary= obj\n * @returns Binary\n */\n static getRootAsBinary(bb: flatbuffers.ByteBuffer, obj?: Binary): Binary {\n return (obj || new Binary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startBinary(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n Binary.startBinary(builder);\n return Binary.endBinary(builder);\n }\n }\n}\n/**\n * Same as Utf8, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeUtf8 {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeUtf8\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeUtf8 {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeUtf8= obj\n * @returns LargeUtf8\n */\n static getRootAsLargeUtf8(bb: flatbuffers.ByteBuffer, obj?: LargeUtf8): LargeUtf8 {\n return (obj || new LargeUtf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeUtf8(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeUtf8.startLargeUtf8(builder);\n return LargeUtf8.endLargeUtf8(builder);\n }\n }\n}\n/**\n * Same as Binary, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeBinary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeBinary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeBinary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeBinary= obj\n * @returns LargeBinary\n */\n static getRootAsLargeBinary(bb: flatbuffers.ByteBuffer, obj?: LargeBinary): LargeBinary {\n return (obj || new LargeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeBinary(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeBinary.startLargeBinary(builder);\n return LargeBinary.endLargeBinary(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FixedSizeBinary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeBinary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeBinary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeBinary= obj\n * @returns FixedSizeBinary\n */\n static getRootAsFixedSizeBinary(bb: flatbuffers.ByteBuffer, obj?: FixedSizeBinary): FixedSizeBinary {\n return (obj || new FixedSizeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Number of bytes per value\n *\n * @returns number\n */\n byteWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeBinary(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number byteWidth\n */\n static addByteWidth(builder: flatbuffers.Builder, byteWidth: number) {\n builder.addFieldInt32(0, byteWidth, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFixedSizeBinary(builder: flatbuffers.Builder, byteWidth: number): flatbuffers.Offset {\n FixedSizeBinary.startFixedSizeBinary(builder);\n FixedSizeBinary.addByteWidth(builder, byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Bool {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Bool\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Bool {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Bool= obj\n * @returns Bool\n */\n static getRootAsBool(bb: flatbuffers.ByteBuffer, obj?: Bool): Bool {\n return (obj || new Bool).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startBool(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBool(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createBool(builder: flatbuffers.Builder): flatbuffers.Offset {\n Bool.startBool(builder);\n return Bool.endBool(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Decimal {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Decimal\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Decimal {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Decimal= obj\n * @returns Decimal\n */\n static getRootAsDecimal(bb: flatbuffers.ByteBuffer, obj?: Decimal): Decimal {\n return (obj || new Decimal).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Total number of decimal digits\n *\n * @returns number\n */\n precision(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * Number of digits after the decimal point \".\"\n *\n * @returns number\n */\n scale(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDecimal(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number precision\n */\n static addPrecision(builder: flatbuffers.Builder, precision: number) {\n builder.addFieldInt32(0, precision, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number scale\n */\n static addScale(builder: flatbuffers.Builder, scale: number) {\n builder.addFieldInt32(1, scale, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDecimal(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDecimal(builder: flatbuffers.Builder, precision: number, scale: number): flatbuffers.Offset {\n Decimal.startDecimal(builder);\n Decimal.addPrecision(builder, precision);\n Decimal.addScale(builder, scale);\n return Decimal.endDecimal(builder);\n }\n }\n}\n/**\n * Date is either a 32-bit or 64-bit type representing elapsed time since UNIX\n * epoch (1970-01-01), stored in either of two units:\n *\n * * Milliseconds (64 bits) indicating UNIX time elapsed since the epoch (no\n * leap seconds), where the values are evenly divisible by 86400000\n * * Days (32 bits) since the UNIX epoch\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Date {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Date\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Date {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Date= obj\n * @returns Date\n */\n static getRootAsDate(bb: flatbuffers.ByteBuffer, obj?: Date): Date {\n return (obj || new Date).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.DateUnit\n */\n unit(): org.apache.arrow.flatbuf.DateUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.DateUnit.MILLISECOND;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDate(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.DateUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.DateUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDate(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDate(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit): flatbuffers.Offset {\n Date.startDate(builder);\n Date.addUnit(builder, unit);\n return Date.endDate(builder);\n }\n }\n}\n/**\n * Time type. The physical storage type depends on the unit\n * - SECOND and MILLISECOND: 32 bits\n * - MICROSECOND and NANOSECOND: 64 bits\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Time {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Time\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Time {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Time= obj\n * @returns Time\n */\n static getRootAsTime(bb: flatbuffers.ByteBuffer, obj?: Time): Time {\n return (obj || new Time).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 32;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startTime(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {\n builder.addFieldInt32(1, bitWidth, 32);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTime(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createTime(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, bitWidth: number): flatbuffers.Offset {\n Time.startTime(builder);\n Time.addUnit(builder, unit);\n Time.addBitWidth(builder, bitWidth);\n return Time.endTime(builder);\n }\n }\n}\n/**\n * Time elapsed from the Unix epoch, 00:00:00.000 on 1 January 1970, excluding\n * leap seconds, as a 64-bit integer. Note that UNIX time does not include\n * leap seconds.\n *\n * The Timestamp metadata supports both \"time zone naive\" and \"time zone\n * aware\" timestamps. Read about the timezone attribute for more detail\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Timestamp {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Timestamp\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Timestamp {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Timestamp= obj\n * @returns Timestamp\n */\n static getRootAsTimestamp(bb: flatbuffers.ByteBuffer, obj?: Timestamp): Timestamp {\n return (obj || new Timestamp).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.SECOND;\n }\n\n /**\n * The time zone is a string indicating the name of a time zone, one of:\n *\n * * As used in the Olson time zone database (the \"tz database\" or\n * \"tzdata\"), such as \"America/New_York\"\n * * An absolute time zone offset of the form +XX:XX or -XX:XX, such as +07:30\n *\n * Whether a timezone string is present indicates different semantics about\n * the data:\n *\n * * If the time zone is null or equal to an empty string, the data is \"time\n * zone naive\" and shall be displayed *as is* to the user, not localized\n * to the locale of the user. This data can be though of as UTC but\n * without having \"UTC\" as the time zone, it is not considered to be\n * localized to any time zone\n *\n * * If the time zone is set to a valid value, values can be displayed as\n * \"localized\" to that time zone, even though the underlying 64-bit\n * integers are identical to the same data stored in UTC. Converting\n * between time zones is a metadata-only operation and does not change the\n * underlying values\n *\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n timezone(): string | null;\n timezone(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n timezone(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startTimestamp(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.SECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset timezoneOffset\n */\n static addTimezone(builder: flatbuffers.Builder, timezoneOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, timezoneOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTimestamp(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createTimestamp(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, timezoneOffset: flatbuffers.Offset): flatbuffers.Offset {\n Timestamp.startTimestamp(builder);\n Timestamp.addUnit(builder, unit);\n Timestamp.addTimezone(builder, timezoneOffset);\n return Timestamp.endTimestamp(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Interval {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Interval\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Interval {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Interval= obj\n * @returns Interval\n */\n static getRootAsInterval(bb: flatbuffers.ByteBuffer, obj?: Interval): Interval {\n return (obj || new Interval).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.IntervalUnit\n */\n unit(): org.apache.arrow.flatbuf.IntervalUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startInterval(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.IntervalUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInterval(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createInterval(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit): flatbuffers.Offset {\n Interval.startInterval(builder);\n Interval.addUnit(builder, unit);\n return Interval.endInterval(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Duration {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Duration\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Duration {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Duration= obj\n * @returns Duration\n */\n static getRootAsDuration(bb: flatbuffers.ByteBuffer, obj?: Duration): Duration {\n return (obj || new Duration).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDuration(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDuration(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDuration(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit): flatbuffers.Offset {\n Duration.startDuration(builder);\n Duration.addUnit(builder, unit);\n return Duration.endDuration(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * user defined key value pairs to add custom metadata to arrow\n * key namespacing is the responsibility of the user\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class KeyValue {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns KeyValue\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): KeyValue {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param KeyValue= obj\n * @returns KeyValue\n */\n static getRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue {\n return (obj || new KeyValue).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n key(): string | null;\n key(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n key(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n value(): string | null;\n value(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n value(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startKeyValue(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset keyOffset\n */\n static addKey(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset) {\n builder.addFieldOffset(0, keyOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset valueOffset\n */\n static addValue(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, valueOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endKeyValue(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createKeyValue(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset, valueOffset: flatbuffers.Offset): flatbuffers.Offset {\n KeyValue.startKeyValue(builder);\n KeyValue.addKey(builder, keyOffset);\n KeyValue.addValue(builder, valueOffset);\n return KeyValue.endKeyValue(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * Dictionary encoding metadata\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class DictionaryEncoding {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryEncoding\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): DictionaryEncoding {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryEncoding= obj\n * @returns DictionaryEncoding\n */\n static getRootAsDictionaryEncoding(bb: flatbuffers.ByteBuffer, obj?: DictionaryEncoding): DictionaryEncoding {\n return (obj || new DictionaryEncoding).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * The known dictionary id in the application where this data is used. In\n * the file or streaming formats, the dictionary ids are found in the\n * DictionaryBatch messages\n *\n * @returns flatbuffers.Long\n */\n id(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * The dictionary indices are constrained to be positive integers. If this\n * field is null, the indices must be signed int32\n *\n * @param org.apache.arrow.flatbuf.Int= obj\n * @returns org.apache.arrow.flatbuf.Int|null\n */\n indexType(obj?: org.apache.arrow.flatbuf.Int): org.apache.arrow.flatbuf.Int | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.Int).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * By default, dictionaries are not ordered, or the order does not have\n * semantic meaning. In some statistical, applications, dictionary-encoding\n * is used to represent ordered categorical data, and we provide a way to\n * preserve that metadata here\n *\n * @returns boolean\n */\n isOrdered(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryEncoding(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder: flatbuffers.Builder, id: flatbuffers.Long) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset indexTypeOffset\n */\n static addIndexType(builder: flatbuffers.Builder, indexTypeOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, indexTypeOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isOrdered\n */\n static addIsOrdered(builder: flatbuffers.Builder, isOrdered: boolean) {\n builder.addFieldInt8(2, +isOrdered, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryEncoding(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDictionaryEncoding(builder: flatbuffers.Builder, id: flatbuffers.Long, indexTypeOffset: flatbuffers.Offset, isOrdered: boolean): flatbuffers.Offset {\n DictionaryEncoding.startDictionaryEncoding(builder);\n DictionaryEncoding.addId(builder, id);\n DictionaryEncoding.addIndexType(builder, indexTypeOffset);\n DictionaryEncoding.addIsOrdered(builder, isOrdered);\n return DictionaryEncoding.endDictionaryEncoding(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A field represents a named column in a record / row batch or child of a\n * nested type.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Field {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Field\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Field {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Field= obj\n * @returns Field\n */\n static getRootAsField(bb: flatbuffers.ByteBuffer, obj?: Field): Field {\n return (obj || new Field).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Name is not required, in i.e. a List\n *\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n name(): string | null;\n name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n name(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * Whether or not this field can contain nulls. Should be true in general.\n *\n * @returns boolean\n */\n nullable(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.Type\n */\n typeType(): org.apache.arrow.flatbuf.Type {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Type.NONE;\n }\n\n /**\n * This is the type of the decoded value if the field is dictionary encoded.\n *\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n type(obj: T): T | null {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * Present only if the field is dictionary encoded.\n *\n * @param org.apache.arrow.flatbuf.DictionaryEncoding= obj\n * @returns org.apache.arrow.flatbuf.DictionaryEncoding|null\n */\n dictionary(obj?: org.apache.arrow.flatbuf.DictionaryEncoding): org.apache.arrow.flatbuf.DictionaryEncoding | null {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new org.apache.arrow.flatbuf.DictionaryEncoding).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * children apply only to nested data types like Struct, List and Union. For\n * primitive types children will have length 0.\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.Field= obj\n * @returns org.apache.arrow.flatbuf.Field\n */\n children(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {\n let offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n childrenLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * User-defined metadata\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startField(builder: flatbuffers.Builder) {\n builder.startObject(7);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nameOffset\n */\n static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset) {\n builder.addFieldOffset(0, nameOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean nullable\n */\n static addNullable(builder: flatbuffers.Builder, nullable: boolean) {\n builder.addFieldInt8(1, +nullable, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Type typeType\n */\n static addTypeType(builder: flatbuffers.Builder, typeType: org.apache.arrow.flatbuf.Type) {\n builder.addFieldInt8(2, typeType, org.apache.arrow.flatbuf.Type.NONE);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeOffset\n */\n static addType(builder: flatbuffers.Builder, typeOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, typeOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionaryOffset\n */\n static addDictionary(builder: flatbuffers.Builder, dictionaryOffset: flatbuffers.Offset) {\n builder.addFieldOffset(4, dictionaryOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset childrenOffset\n */\n static addChildren(builder: flatbuffers.Builder, childrenOffset: flatbuffers.Offset) {\n builder.addFieldOffset(5, childrenOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createChildrenVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startChildrenVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(6, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endField(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createField(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, nullable: boolean, typeType: org.apache.arrow.flatbuf.Type, typeOffset: flatbuffers.Offset, dictionaryOffset: flatbuffers.Offset, childrenOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Field.startField(builder);\n Field.addName(builder, nameOffset);\n Field.addNullable(builder, nullable);\n Field.addTypeType(builder, typeType);\n Field.addType(builder, typeOffset);\n Field.addDictionary(builder, dictionaryOffset);\n Field.addChildren(builder, childrenOffset);\n Field.addCustomMetadata(builder, customMetadataOffset);\n return Field.endField(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A Buffer represents a single contiguous memory segment\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Buffer {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Buffer\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Buffer {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * The relative offset into the shared memory page where the bytes for this\n * buffer starts\n *\n * @returns flatbuffers.Long\n */\n offset(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * The absolute length (in bytes) of the memory buffer. The memory is found\n * from offset (inclusive) to offset + length (non-inclusive).\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long offset\n * @param flatbuffers.Long length\n * @returns flatbuffers.Offset\n */\n static createBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Long, length: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 16);\n builder.writeInt64(length);\n builder.writeInt64(offset);\n return builder.offset();\n }\n\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A Schema describes the columns in a row batch\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Schema {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Schema\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Schema {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Schema= obj\n * @returns Schema\n */\n static getRootAsSchema(bb: flatbuffers.ByteBuffer, obj?: Schema): Schema {\n return (obj || new Schema).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * endianness of the buffer\n * it is Little Endian by default\n * if endianness doesn't match the underlying system then the vectors need to be converted\n *\n * @returns org.apache.arrow.flatbuf.Endianness\n */\n endianness(): org.apache.arrow.flatbuf.Endianness {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Endianness.Little;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Field= obj\n * @returns org.apache.arrow.flatbuf.Field\n */\n fields(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n fieldsLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startSchema(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Endianness endianness\n */\n static addEndianness(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness) {\n builder.addFieldInt16(0, endianness, org.apache.arrow.flatbuf.Endianness.Little);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset fieldsOffset\n */\n static addFields(builder: flatbuffers.Builder, fieldsOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, fieldsOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createFieldsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startFieldsVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endSchema(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSchemaBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createSchema(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness, fieldsOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Schema.startSchema(builder);\n Schema.addEndianness(builder, endianness);\n Schema.addFields(builder, fieldsOffset);\n Schema.addCustomMetadata(builder, customMetadataOffset);\n return Schema.endSchema(builder);\n }\n }\n}\n","// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS7624605610262437867 from './Schema';\nexport namespace org.apache.arrow.flatbuf {\n export import Schema = NS7624605610262437867.org.apache.arrow.flatbuf.Schema;\n}\n/**\n * ----------------------------------------------------------------------\n * The root Message type\n * This union enables us to easily send different message types without\n * redundant storage, and in the future we can easily add new message types.\n *\n * Arrow implementations do not need to implement all of the message types,\n * which may include experimental metadata types. For maximum compatibility,\n * it is best to send data using RecordBatch\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum MessageHeader {\n NONE = 0,\n Schema = 1,\n DictionaryBatch = 2,\n RecordBatch = 3,\n Tensor = 4,\n SparseTensor = 5\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Data structures for describing a table row batch (a collection of\n * equal-length Arrow arrays)\n * Metadata about a field at some level of a nested type tree (but not\n * its children).\n *\n * For example, a List with values [[1, 2, 3], null, [4], [5, 6], null]\n * would have {length: 5, null_count: 2} for its List node, and {length: 6,\n * null_count: 0} for its Int16 node, as separate FieldNode structs\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FieldNode {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FieldNode\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FieldNode {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * The number of value slots in the Arrow array at this level of a nested\n * tree\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * The number of observed nulls. Fields with null_count == 0 may choose not\n * to write their physical validity bitmap out as a materialized buffer,\n * instead setting the length of the bitmap buffer to 0.\n *\n * @returns flatbuffers.Long\n */\n nullCount(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long length\n * @param flatbuffers.Long null_count\n * @returns flatbuffers.Offset\n */\n static createFieldNode(builder: flatbuffers.Builder, length: flatbuffers.Long, null_count: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 16);\n builder.writeInt64(null_count);\n builder.writeInt64(length);\n return builder.offset();\n }\n\n }\n}\n/**\n * A data header describing the shared memory layout of a \"record\" or \"row\"\n * batch. Some systems call this a \"row batch\" internally and others a \"record\n * batch\".\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class RecordBatch {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns RecordBatch\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): RecordBatch {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param RecordBatch= obj\n * @returns RecordBatch\n */\n static getRootAsRecordBatch(bb: flatbuffers.ByteBuffer, obj?: RecordBatch): RecordBatch {\n return (obj || new RecordBatch).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * number of records / rows. The arrays in the batch should all have this\n * length\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * Nodes correspond to the pre-ordered flattened logical schema\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.FieldNode= obj\n * @returns org.apache.arrow.flatbuf.FieldNode\n */\n nodes(index: number, obj?: org.apache.arrow.flatbuf.FieldNode): org.apache.arrow.flatbuf.FieldNode | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.FieldNode).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n nodesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * Buffers correspond to the pre-ordered flattened buffer tree\n *\n * The number of buffers appended to this list depends on the schema. For\n * example, most primitive arrays will have 2 buffers, 1 for the validity\n * bitmap and 1 for the values. For struct arrays, there will only be a\n * single buffer for the validity (nulls) bitmap\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.Buffer= obj\n * @returns org.apache.arrow.flatbuf.Buffer\n */\n buffers(index: number, obj?: NS7624605610262437867.org.apache.arrow.flatbuf.Buffer): NS7624605610262437867.org.apache.arrow.flatbuf.Buffer | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.Buffer).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n buffersLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startRecordBatch(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long length\n */\n static addLength(builder: flatbuffers.Builder, length: flatbuffers.Long) {\n builder.addFieldInt64(0, length, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nodesOffset\n */\n static addNodes(builder: flatbuffers.Builder, nodesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, nodesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startNodesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(16, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset buffersOffset\n */\n static addBuffers(builder: flatbuffers.Builder, buffersOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, buffersOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startBuffersVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(16, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endRecordBatch(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createRecordBatch(builder: flatbuffers.Builder, length: flatbuffers.Long, nodesOffset: flatbuffers.Offset, buffersOffset: flatbuffers.Offset): flatbuffers.Offset {\n RecordBatch.startRecordBatch(builder);\n RecordBatch.addLength(builder, length);\n RecordBatch.addNodes(builder, nodesOffset);\n RecordBatch.addBuffers(builder, buffersOffset);\n return RecordBatch.endRecordBatch(builder);\n }\n }\n}\n/**\n * For sending dictionary encoding information. Any Field can be\n * dictionary-encoded, but in this case none of its children may be\n * dictionary-encoded.\n * There is one vector / column per dictionary, but that vector / column\n * may be spread across multiple dictionary batches by using the isDelta\n * flag\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class DictionaryBatch {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryBatch\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): DictionaryBatch {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryBatch= obj\n * @returns DictionaryBatch\n */\n static getRootAsDictionaryBatch(bb: flatbuffers.ByteBuffer, obj?: DictionaryBatch): DictionaryBatch {\n return (obj || new DictionaryBatch).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns flatbuffers.Long\n */\n id(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * @param org.apache.arrow.flatbuf.RecordBatch= obj\n * @returns org.apache.arrow.flatbuf.RecordBatch|null\n */\n data(obj?: org.apache.arrow.flatbuf.RecordBatch): org.apache.arrow.flatbuf.RecordBatch | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.RecordBatch).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * If isDelta is true the values in the dictionary are to be appended to a\n * dictionary with the indicated id\n *\n * @returns boolean\n */\n isDelta(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryBatch(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder: flatbuffers.Builder, id: flatbuffers.Long) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dataOffset\n */\n static addData(builder: flatbuffers.Builder, dataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, dataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isDelta\n */\n static addIsDelta(builder: flatbuffers.Builder, isDelta: boolean) {\n builder.addFieldInt8(2, +isDelta, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryBatch(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDictionaryBatch(builder: flatbuffers.Builder, id: flatbuffers.Long, dataOffset: flatbuffers.Offset, isDelta: boolean): flatbuffers.Offset {\n DictionaryBatch.startDictionaryBatch(builder);\n DictionaryBatch.addId(builder, id);\n DictionaryBatch.addData(builder, dataOffset);\n DictionaryBatch.addIsDelta(builder, isDelta);\n return DictionaryBatch.endDictionaryBatch(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Message {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Message\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Message {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Message= obj\n * @returns Message\n */\n static getRootAsMessage(bb: flatbuffers.ByteBuffer, obj?: Message): Message {\n return (obj || new Message).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MetadataVersion\n */\n version(): NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1;\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MessageHeader\n */\n headerType(): org.apache.arrow.flatbuf.MessageHeader {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.MessageHeader.NONE;\n }\n\n /**\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n header(obj: T): T | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * @returns flatbuffers.Long\n */\n bodyLength(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue): NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startMessage(builder: flatbuffers.Builder) {\n builder.startObject(5);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion) {\n builder.addFieldInt16(0, version, NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MessageHeader headerType\n */\n static addHeaderType(builder: flatbuffers.Builder, headerType: org.apache.arrow.flatbuf.MessageHeader) {\n builder.addFieldInt8(1, headerType, org.apache.arrow.flatbuf.MessageHeader.NONE);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset headerOffset\n */\n static addHeader(builder: flatbuffers.Builder, headerOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, headerOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long bodyLength\n */\n static addBodyLength(builder: flatbuffers.Builder, bodyLength: flatbuffers.Long) {\n builder.addFieldInt64(3, bodyLength, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(4, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMessage(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishMessageBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createMessage(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion, headerType: org.apache.arrow.flatbuf.MessageHeader, headerOffset: flatbuffers.Offset, bodyLength: flatbuffers.Long, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Message.startMessage(builder);\n Message.addVersion(builder, version);\n Message.addHeaderType(builder, headerType);\n Message.addHeader(builder, headerOffset);\n Message.addBodyLength(builder, bodyLength);\n Message.addCustomMetadata(builder, customMetadataOffset);\n return Message.endMessage(builder);\n }\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport * as Schema_ from './fb/Schema';\nimport * as Message_ from './fb/Message';\n\nexport import ArrowType = Schema_.org.apache.arrow.flatbuf.Type;\nexport import DateUnit = Schema_.org.apache.arrow.flatbuf.DateUnit;\nexport import TimeUnit = Schema_.org.apache.arrow.flatbuf.TimeUnit;\nexport import Precision = Schema_.org.apache.arrow.flatbuf.Precision;\nexport import UnionMode = Schema_.org.apache.arrow.flatbuf.UnionMode;\nexport import IntervalUnit = Schema_.org.apache.arrow.flatbuf.IntervalUnit;\nexport import MessageHeader = Message_.org.apache.arrow.flatbuf.MessageHeader;\nexport import MetadataVersion = Schema_.org.apache.arrow.flatbuf.MetadataVersion;\n\n/**\n * Main data type enumeration.\n *\n * Data types in this library are all *logical*. They can be expressed as\n * either a primitive physical type (bytes or bits of some fixed size), a\n * nested type consisting of other data types, or another data type (e.g. a\n * timestamp encoded as an int64).\n *\n * **Note**: Only enum values 0-17 (NONE through Map) are written to an Arrow\n * IPC payload.\n *\n * The rest of the values are specified here so TypeScript can narrow the type\n * signatures further beyond the base Arrow Types. The Arrow DataTypes include\n * metadata like `bitWidth` that impact the type signatures of the values we\n * accept and return.\n *\n * For example, the `Int8Vector` reads 1-byte numbers from an `Int8Array`, an\n * `Int32Vector` reads a 4-byte number from an `Int32Array`, and an `Int64Vector`\n * reads a pair of 4-byte lo, hi 32-bit integers as a zero-copy slice from the\n * underlying `Int32Array`.\n *\n * Library consumers benefit by knowing the narrowest type, since we can ensure\n * the types across all public methods are propagated, and never bail to `any`.\n * These values are _never_ used at runtime, and they will _never_ be written\n * to the flatbuffers metadata of serialized Arrow IPC payloads.\n */\nexport enum Type {\n /** The default placeholder type */\n NONE = 0,\n /** A NULL type having no physical storage */\n Null = 1,\n /** Signed or unsigned 8, 16, 32, or 64-bit little-endian integer */\n Int = 2,\n /** 2, 4, or 8-byte floating point value */\n Float = 3,\n /** Variable-length bytes (no guarantee of UTF8-ness) */\n Binary = 4,\n /** UTF8 variable-length string as List */\n Utf8 = 5,\n /** Boolean as 1 bit, LSB bit-packed ordering */\n Bool = 6,\n /** Precision-and-scale-based decimal type. Storage type depends on the parameters. */\n Decimal = 7,\n /** int32_t days or int64_t milliseconds since the UNIX epoch */\n Date = 8,\n /** Time as signed 32 or 64-bit integer, representing either seconds, milliseconds, microseconds, or nanoseconds since midnight since midnight */\n Time = 9,\n /** Exact timestamp encoded with int64 since UNIX epoch (Default unit millisecond) */\n Timestamp = 10,\n /** YEAR_MONTH or DAY_TIME interval in SQL style */\n Interval = 11,\n /** A list of some logical data type */\n List = 12,\n /** Struct of logical types */\n Struct = 13,\n /** Union of logical types */\n Union = 14,\n /** Fixed-size binary. Each value occupies the same number of bytes */\n FixedSizeBinary = 15,\n /** Fixed-size list. Each value occupies the same number of bytes */\n FixedSizeList = 16,\n /** Map of named logical types */\n Map = 17,\n\n /** Dictionary aka Category type */\n Dictionary = -1,\n Int8 = -2,\n Int16 = -3,\n Int32 = -4,\n Int64 = -5,\n Uint8 = -6,\n Uint16 = -7,\n Uint32 = -8,\n Uint64 = -9,\n Float16 = -10,\n Float32 = -11,\n Float64 = -12,\n DateDay = -13,\n DateMillisecond = -14,\n TimestampSecond = -15,\n TimestampMillisecond = -16,\n TimestampMicrosecond = -17,\n TimestampNanosecond = -18,\n TimeSecond = -19,\n TimeMillisecond = -20,\n TimeMicrosecond = -21,\n TimeNanosecond = -22,\n DenseUnion = -23,\n SparseUnion = -24,\n IntervalDayTime = -25,\n IntervalYearMonth = -26,\n}\n\nexport enum BufferType {\n /**\n * used in List type, Dense Union and variable length primitive types (String, Binary)\n */\n OFFSET = 0,\n\n /**\n * actual data, either wixed width primitive types in slots or variable width delimited by an OFFSET vector\n */\n DATA = 1,\n\n /**\n * Bit vector indicating if each value is null\n */\n VALIDITY = 2,\n\n /**\n * Type vector used in Union type\n */\n TYPE = 3\n }\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nexport function getBool(_data: any, _index: number, byte: number, bit: number) {\n return (byte & 1 << bit) !== 0;\n}\n\n/** @ignore */\nexport function getBit(_data: any, _index: number, byte: number, bit: number): 0 | 1 {\n return (byte & 1 << bit) >> bit as (0 | 1);\n}\n\n/** @ignore */\nexport function setBool(bytes: Uint8Array, index: number, value: any) {\n return value ?\n !!(bytes[index >> 3] |= (1 << (index % 8))) || true :\n !(bytes[index >> 3] &= ~(1 << (index % 8))) && false ;\n}\n\n/** @ignore */\nexport function truncateBitmap(offset: number, length: number, bitmap: Uint8Array) {\n const alignedSize = (bitmap.byteLength + 7) & ~7;\n if (offset > 0 || bitmap.byteLength < alignedSize) {\n const bytes = new Uint8Array(alignedSize);\n // If the offset is a multiple of 8 bits, it's safe to slice the bitmap\n bytes.set(offset % 8 === 0 ? bitmap.subarray(offset >> 3) :\n // Otherwise iterate each bit from the offset and return a new one\n packBools(iterateBits(bitmap, offset, length, null, getBool)).subarray(0, alignedSize));\n return bytes;\n }\n return bitmap;\n}\n\n/** @ignore */\nexport function packBools(values: Iterable) {\n let xs: number[] = [];\n let i = 0, bit = 0, byte = 0;\n for (const value of values) {\n value && (byte |= 1 << bit);\n if (++bit === 8) {\n xs[i++] = byte;\n byte = bit = 0;\n }\n }\n if (i === 0 || bit > 0) { xs[i++] = byte; }\n let b = new Uint8Array((xs.length + 7) & ~7);\n b.set(xs);\n return b;\n}\n\n/** @ignore */\nexport function* iterateBits(bytes: Uint8Array, begin: number, length: number, context: any,\n get: (context: any, index: number, byte: number, bit: number) => T) {\n let bit = begin % 8;\n let byteIndex = begin >> 3;\n let index = 0, remaining = length;\n for (; remaining > 0; bit = 0) {\n let byte = bytes[byteIndex++];\n do {\n yield get(context, index++, byte, bit);\n } while (--remaining > 0 && ++bit < 8);\n }\n}\n\n/**\n * Compute the population count (the number of bits set to 1) for a range of bits in a Uint8Array.\n * @param vector The Uint8Array of bits for which to compute the population count.\n * @param lhs The range's left-hand side (or start) bit\n * @param rhs The range's right-hand side (or end) bit\n */\n/** @ignore */\nexport function popcnt_bit_range(data: Uint8Array, lhs: number, rhs: number): number {\n if (rhs - lhs <= 0) { return 0; }\n // If the bit range is less than one byte, sum the 1 bits in the bit range\n if (rhs - lhs < 8) {\n let sum = 0;\n for (const bit of iterateBits(data, lhs, rhs - lhs, data, getBit)) {\n sum += bit;\n }\n return sum;\n }\n // Get the next lowest multiple of 8 from the right hand side\n const rhsInside = rhs >> 3 << 3;\n // Get the next highest multiple of 8 from the left hand side\n const lhsInside = lhs + (lhs % 8 === 0 ? 0 : 8 - lhs % 8);\n return (\n // Get the popcnt of bits between the left hand side, and the next highest multiple of 8\n popcnt_bit_range(data, lhs, lhsInside) +\n // Get the popcnt of bits between the right hand side, and the next lowest multiple of 8\n popcnt_bit_range(data, rhsInside, rhs) +\n // Get the popcnt of all bits between the left and right hand sides' multiples of 8\n popcnt_array(data, lhsInside >> 3, (rhsInside - lhsInside) >> 3)\n );\n}\n\n/** @ignore */\nexport function popcnt_array(arr: ArrayBufferView, byteOffset?: number, byteLength?: number) {\n let cnt = 0, pos = byteOffset! | 0;\n const view = new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n const len = byteLength === void 0 ? arr.byteLength : pos + byteLength;\n while (len - pos >= 4) {\n cnt += popcnt_uint32(view.getUint32(pos));\n pos += 4;\n }\n while (len - pos >= 2) {\n cnt += popcnt_uint32(view.getUint16(pos));\n pos += 2;\n }\n while (len - pos >= 1) {\n cnt += popcnt_uint32(view.getUint8(pos));\n pos += 1;\n }\n return cnt;\n}\n\n/** @ignore */\nexport function popcnt_uint32(uint32: number): number {\n let i = uint32 | 0;\n i = i - ((i >>> 1) & 0x55555555);\n i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\n return (((i + (i >>> 4)) & 0x0F0F0F0F) * 0x01010101) >>> 24;\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Vector } from './vector';\nimport { Type, Precision, DateUnit, TimeUnit, IntervalUnit, UnionMode } from './enum';\nimport { DataType, Float, Int, Date_, Interval, Time, Timestamp, Union, } from './type';\n\nexport abstract class Visitor {\n public visitMany(nodes: any[], ...args: any[][]) {\n return nodes.map((node, i) => this.visit(node, ...args.map((x) => x[i])));\n }\n public visit(...args: any[]) {\n return this.getVisitFn(args[0], false).apply(this, args);\n }\n public getVisitFn(node: any, throwIfNotFound = true) {\n return getVisitFn(this, node, throwIfNotFound);\n }\n public visitNull (_node: any, ..._args: any[]): any { return null; }\n public visitBool (_node: any, ..._args: any[]): any { return null; }\n public visitInt (_node: any, ..._args: any[]): any { return null; }\n public visitFloat (_node: any, ..._args: any[]): any { return null; }\n public visitUtf8 (_node: any, ..._args: any[]): any { return null; }\n public visitBinary (_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeBinary (_node: any, ..._args: any[]): any { return null; }\n public visitDate (_node: any, ..._args: any[]): any { return null; }\n public visitTimestamp (_node: any, ..._args: any[]): any { return null; }\n public visitTime (_node: any, ..._args: any[]): any { return null; }\n public visitDecimal (_node: any, ..._args: any[]): any { return null; }\n public visitList (_node: any, ..._args: any[]): any { return null; }\n public visitStruct (_node: any, ..._args: any[]): any { return null; }\n public visitUnion (_node: any, ..._args: any[]): any { return null; }\n public visitDictionary (_node: any, ..._args: any[]): any { return null; }\n public visitInterval (_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeList (_node: any, ..._args: any[]): any { return null; }\n public visitMap (_node: any, ..._args: any[]): any { return null; }\n}\n\n/** @ignore */\nfunction getVisitFn(visitor: Visitor, node: any, throwIfNotFound = true) {\n let fn: any = null;\n let dtype: T['TType'] = Type.NONE;\n // tslint:disable\n if (node instanceof Data ) { dtype = inferDType(node.type as T); }\n else if (node instanceof Vector ) { dtype = inferDType(node.type as T); }\n else if (node instanceof DataType) { dtype = inferDType(node as T); }\n else if (typeof (dtype = node) !== 'number') { dtype = Type[node] as any as T['TType']; }\n\n switch (dtype) {\n case Type.Null: fn = visitor.visitNull; break;\n case Type.Bool: fn = visitor.visitBool; break;\n case Type.Int: fn = visitor.visitInt; break;\n case Type.Int8: fn = visitor.visitInt8 || visitor.visitInt; break;\n case Type.Int16: fn = visitor.visitInt16 || visitor.visitInt; break;\n case Type.Int32: fn = visitor.visitInt32 || visitor.visitInt; break;\n case Type.Int64: fn = visitor.visitInt64 || visitor.visitInt; break;\n case Type.Uint8: fn = visitor.visitUint8 || visitor.visitInt; break;\n case Type.Uint16: fn = visitor.visitUint16 || visitor.visitInt; break;\n case Type.Uint32: fn = visitor.visitUint32 || visitor.visitInt; break;\n case Type.Uint64: fn = visitor.visitUint64 || visitor.visitInt; break;\n case Type.Float: fn = visitor.visitFloat; break;\n case Type.Float16: fn = visitor.visitFloat16 || visitor.visitFloat; break;\n case Type.Float32: fn = visitor.visitFloat32 || visitor.visitFloat; break;\n case Type.Float64: fn = visitor.visitFloat64 || visitor.visitFloat; break;\n case Type.Utf8: fn = visitor.visitUtf8; break;\n case Type.Binary: fn = visitor.visitBinary; break;\n case Type.FixedSizeBinary: fn = visitor.visitFixedSizeBinary; break;\n case Type.Date: fn = visitor.visitDate; break;\n case Type.DateDay: fn = visitor.visitDateDay || visitor.visitDate; break;\n case Type.DateMillisecond: fn = visitor.visitDateMillisecond || visitor.visitDate; break;\n case Type.Timestamp: fn = visitor.visitTimestamp; break;\n case Type.TimestampSecond: fn = visitor.visitTimestampSecond || visitor.visitTimestamp; break;\n case Type.TimestampMillisecond: fn = visitor.visitTimestampMillisecond || visitor.visitTimestamp; break;\n case Type.TimestampMicrosecond: fn = visitor.visitTimestampMicrosecond || visitor.visitTimestamp; break;\n case Type.TimestampNanosecond: fn = visitor.visitTimestampNanosecond || visitor.visitTimestamp; break;\n case Type.Time: fn = visitor.visitTime; break;\n case Type.TimeSecond: fn = visitor.visitTimeSecond || visitor.visitTime; break;\n case Type.TimeMillisecond: fn = visitor.visitTimeMillisecond || visitor.visitTime; break;\n case Type.TimeMicrosecond: fn = visitor.visitTimeMicrosecond || visitor.visitTime; break;\n case Type.TimeNanosecond: fn = visitor.visitTimeNanosecond || visitor.visitTime; break;\n case Type.Decimal: fn = visitor.visitDecimal; break;\n case Type.List: fn = visitor.visitList; break;\n case Type.Struct: fn = visitor.visitStruct; break;\n case Type.Union: fn = visitor.visitUnion; break;\n case Type.DenseUnion: fn = visitor.visitDenseUnion || visitor.visitUnion; break;\n case Type.SparseUnion: fn = visitor.visitSparseUnion || visitor.visitUnion; break;\n case Type.Dictionary: fn = visitor.visitDictionary; break;\n case Type.Interval: fn = visitor.visitInterval; break;\n case Type.IntervalDayTime: fn = visitor.visitIntervalDayTime || visitor.visitInterval; break;\n case Type.IntervalYearMonth: fn = visitor.visitIntervalYearMonth || visitor.visitInterval; break;\n case Type.FixedSizeList: fn = visitor.visitFixedSizeList; break;\n case Type.Map: fn = visitor.visitMap; break;\n }\n if (typeof fn === 'function') return fn;\n if (!throwIfNotFound) return () => null;\n throw new Error(`Unrecognized type '${Type[dtype]}'`);\n}\n\n/** @ignore */\nfunction inferDType(type: T): Type {\n switch (type.typeId) {\n case Type.Null: return Type.Null;\n case Type.Int:\n const { bitWidth, isSigned } = (type as any as Int);\n switch (bitWidth) {\n case 8: return isSigned ? Type.Int8 : Type.Uint8 ;\n case 16: return isSigned ? Type.Int16 : Type.Uint16;\n case 32: return isSigned ? Type.Int32 : Type.Uint32;\n case 64: return isSigned ? Type.Int64 : Type.Uint64;\n }\n return Type.Int;\n case Type.Float:\n switch((type as any as Float).precision) {\n case Precision.HALF: return Type.Float16;\n case Precision.SINGLE: return Type.Float32;\n case Precision.DOUBLE: return Type.Float64;\n }\n return Type.Float;\n case Type.Binary: return Type.Binary;\n case Type.Utf8: return Type.Utf8;\n case Type.Bool: return Type.Bool;\n case Type.Decimal: return Type.Decimal;\n case Type.Time:\n switch ((type as any as Time).unit) {\n case TimeUnit.SECOND: return Type.TimeSecond;\n case TimeUnit.MILLISECOND: return Type.TimeMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimeMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimeNanosecond;\n }\n return Type.Time;\n case Type.Timestamp:\n switch ((type as any as Timestamp).unit) {\n case TimeUnit.SECOND: return Type.TimestampSecond;\n case TimeUnit.MILLISECOND: return Type.TimestampMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimestampMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimestampNanosecond;\n }\n return Type.Timestamp;\n case Type.Date:\n switch ((type as any as Date_).unit) {\n case DateUnit.DAY: return Type.DateDay;\n case DateUnit.MILLISECOND: return Type.DateMillisecond;\n }\n return Type.Date;\n case Type.Interval:\n switch ((type as any as Interval).unit) {\n case IntervalUnit.DAY_TIME: return Type.IntervalDayTime;\n case IntervalUnit.YEAR_MONTH: return Type.IntervalYearMonth;\n }\n return Type.Interval;\n case Type.Map: return Type.Map;\n case Type.List: return Type.List;\n case Type.Struct: return Type.Struct;\n case Type.Union:\n switch ((type as any as Union).mode) {\n case UnionMode.Dense: return Type.DenseUnion;\n case UnionMode.Sparse: return Type.SparseUnion;\n }\n return Type.Union;\n case Type.FixedSizeBinary: return Type.FixedSizeBinary;\n case Type.FixedSizeList: return Type.FixedSizeList;\n case Type.Dictionary: return Type.Dictionary;\n }\n throw new Error(`Unrecognized type '${Type[type.typeId]}'`);\n}\n\nexport interface Visitor {\n visitNull (node: any, ...args: any[]): any;\n visitBool (node: any, ...args: any[]): any;\n visitInt (node: any, ...args: any[]): any;\n visitInt8? (node: any, ...args: any[]): any;\n visitInt16? (node: any, ...args: any[]): any;\n visitInt32? (node: any, ...args: any[]): any;\n visitInt64? (node: any, ...args: any[]): any;\n visitUint8? (node: any, ...args: any[]): any;\n visitUint16? (node: any, ...args: any[]): any;\n visitUint32? (node: any, ...args: any[]): any;\n visitUint64? (node: any, ...args: any[]): any;\n visitFloat (node: any, ...args: any[]): any;\n visitFloat16? (node: any, ...args: any[]): any;\n visitFloat32? (node: any, ...args: any[]): any;\n visitFloat64? (node: any, ...args: any[]): any;\n visitUtf8 (node: any, ...args: any[]): any;\n visitBinary (node: any, ...args: any[]): any;\n visitFixedSizeBinary (node: any, ...args: any[]): any;\n visitDate (node: any, ...args: any[]): any;\n visitDateDay? (node: any, ...args: any[]): any;\n visitDateMillisecond? (node: any, ...args: any[]): any;\n visitTimestamp (node: any, ...args: any[]): any;\n visitTimestampSecond? (node: any, ...args: any[]): any;\n visitTimestampMillisecond? (node: any, ...args: any[]): any;\n visitTimestampMicrosecond? (node: any, ...args: any[]): any;\n visitTimestampNanosecond? (node: any, ...args: any[]): any;\n visitTime (node: any, ...args: any[]): any;\n visitTimeSecond? (node: any, ...args: any[]): any;\n visitTimeMillisecond? (node: any, ...args: any[]): any;\n visitTimeMicrosecond? (node: any, ...args: any[]): any;\n visitTimeNanosecond? (node: any, ...args: any[]): any;\n visitDecimal (node: any, ...args: any[]): any;\n visitList (node: any, ...args: any[]): any;\n visitStruct (node: any, ...args: any[]): any;\n visitUnion (node: any, ...args: any[]): any;\n visitDenseUnion? (node: any, ...args: any[]): any;\n visitSparseUnion? (node: any, ...args: any[]): any;\n visitDictionary (node: any, ...args: any[]): any;\n visitInterval (node: any, ...args: any[]): any;\n visitIntervalDayTime? (node: any, ...args: any[]): any;\n visitIntervalYearMonth? (node: any, ...args: any[]): any;\n visitFixedSizeList (node: any, ...args: any[]): any;\n visitMap (node: any, ...args: any[]): any;\n}\n\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\n(Visitor.prototype as any).visitInt8 = null;\n(Visitor.prototype as any).visitInt16 = null;\n(Visitor.prototype as any).visitInt32 = null;\n(Visitor.prototype as any).visitInt64 = null;\n(Visitor.prototype as any).visitUint8 = null;\n(Visitor.prototype as any).visitUint16 = null;\n(Visitor.prototype as any).visitUint32 = null;\n(Visitor.prototype as any).visitUint64 = null;\n(Visitor.prototype as any).visitFloat16 = null;\n(Visitor.prototype as any).visitFloat32 = null;\n(Visitor.prototype as any).visitFloat64 = null;\n(Visitor.prototype as any).visitDateDay = null;\n(Visitor.prototype as any).visitDateMillisecond = null;\n(Visitor.prototype as any).visitTimestampSecond = null;\n(Visitor.prototype as any).visitTimestampMillisecond = null;\n(Visitor.prototype as any).visitTimestampMicrosecond = null;\n(Visitor.prototype as any).visitTimestampNanosecond = null;\n(Visitor.prototype as any).visitTimeSecond = null;\n(Visitor.prototype as any).visitTimeMillisecond = null;\n(Visitor.prototype as any).visitTimeMicrosecond = null;\n(Visitor.prototype as any).visitTimeNanosecond = null;\n(Visitor.prototype as any).visitDenseUnion = null;\n(Visitor.prototype as any).visitSparseUnion = null;\n(Visitor.prototype as any).visitIntervalDayTime = null;\n(Visitor.prototype as any).visitIntervalYearMonth = null;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { Schema, Field } from '../schema';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface TypeComparator extends Visitor {\n visit(type: T, other?: DataType | null): other is T;\n visitMany(nodes: T[], others?: DataType[] | null): boolean[];\n getVisitFn(node: VectorType | Data | T): (other?: DataType | null) => other is T;\n visitNull (type: T, other?: DataType | null): other is T;\n visitBool (type: T, other?: DataType | null): other is T;\n visitInt (type: T, other?: DataType | null): other is T;\n visitInt8 (type: T, other?: DataType | null): other is T;\n visitInt16 (type: T, other?: DataType | null): other is T;\n visitInt32 (type: T, other?: DataType | null): other is T;\n visitInt64 (type: T, other?: DataType | null): other is T;\n visitUint8 (type: T, other?: DataType | null): other is T;\n visitUint16 (type: T, other?: DataType | null): other is T;\n visitUint32 (type: T, other?: DataType | null): other is T;\n visitUint64 (type: T, other?: DataType | null): other is T;\n visitFloat (type: T, other?: DataType | null): other is T;\n visitFloat16 (type: T, other?: DataType | null): other is T;\n visitFloat32 (type: T, other?: DataType | null): other is T;\n visitFloat64 (type: T, other?: DataType | null): other is T;\n visitUtf8 (type: T, other?: DataType | null): other is T;\n visitBinary (type: T, other?: DataType | null): other is T;\n visitFixedSizeBinary (type: T, other?: DataType | null): other is T;\n visitDate (type: T, other?: DataType | null): other is T;\n visitDateDay (type: T, other?: DataType | null): other is T;\n visitDateMillisecond (type: T, other?: DataType | null): other is T;\n visitTimestamp (type: T, other?: DataType | null): other is T;\n visitTimestampSecond (type: T, other?: DataType | null): other is T;\n visitTimestampMillisecond (type: T, other?: DataType | null): other is T;\n visitTimestampMicrosecond (type: T, other?: DataType | null): other is T;\n visitTimestampNanosecond (type: T, other?: DataType | null): other is T;\n visitTime (type: T, other?: DataType | null): other is T;\n visitTimeSecond (type: T, other?: DataType | null): other is T;\n visitTimeMillisecond (type: T, other?: DataType | null): other is T;\n visitTimeMicrosecond (type: T, other?: DataType | null): other is T;\n visitTimeNanosecond (type: T, other?: DataType | null): other is T;\n visitDecimal (type: T, other?: DataType | null): other is T;\n visitList (type: T, other?: DataType | null): other is T;\n visitStruct (type: T, other?: DataType | null): other is T;\n visitUnion (type: T, other?: DataType | null): other is T;\n visitDenseUnion (type: T, other?: DataType | null): other is T;\n visitSparseUnion (type: T, other?: DataType | null): other is T;\n visitDictionary (type: T, other?: DataType | null): other is T;\n visitInterval (type: T, other?: DataType | null): other is T;\n visitIntervalDayTime (type: T, other?: DataType | null): other is T;\n visitIntervalYearMonth (type: T, other?: DataType | null): other is T;\n visitFixedSizeList (type: T, other?: DataType | null): other is T;\n visitMap (type: T, other?: DataType | null): other is T;\n}\n\n/** @ignore */\nexport class TypeComparator extends Visitor {\n compareSchemas(schema: Schema, other?: Schema | null): other is Schema {\n return (schema === other) || (\n other instanceof schema.constructor &&\n instance.compareFields(schema.fields, other.fields)\n );\n }\n compareFields(fields: Field[], others?: Field[] | null): others is Field[] {\n return (fields === others) || (\n Array.isArray(fields) &&\n Array.isArray(others) &&\n fields.length === others.length &&\n fields.every((f, i) => instance.compareField(f, others[i]))\n );\n }\n compareField(field: Field, other?: Field | null): other is Field {\n return (field === other) || (\n other instanceof field.constructor &&\n field.name === other.name &&\n field.nullable === other.nullable &&\n instance.visit(field.type, other.type)\n );\n }\n}\n\nfunction compareConstructor(type: T, other?: DataType | null): other is T {\n return other instanceof type.constructor;\n}\n\nfunction compareAny(type: T, other?: DataType | null): other is T {\n return (type === other) || compareConstructor(type, other);\n}\n\nfunction compareInt(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.bitWidth === other.bitWidth &&\n type.isSigned === other.isSigned\n );\n}\n\nfunction compareFloat(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.precision === other.precision\n );\n}\n\nfunction compareFixedSizeBinary(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.byteWidth === other.byteWidth\n );\n}\n\nfunction compareDate(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit\n );\n}\n\nfunction compareTimestamp(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.timezone === other.timezone\n );\n}\n\nfunction compareTime(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.bitWidth === other.bitWidth\n );\n}\n\nfunction compareList(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareStruct(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareUnion(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.mode === other.mode &&\n type.typeIds.every((x, i) => x === other.typeIds[i]) &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareDictionary(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.id === other.id &&\n type.isOrdered === other.isOrdered &&\n instance.visit( type.indices, other.indices) &&\n instance.visit(type.dictionary, other.dictionary)\n );\n}\n\nfunction compareInterval(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit\n );\n}\n\nfunction compareFixedSizeList(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.listSize === other.listSize &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareMap(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.keysSorted === other.keysSorted &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nTypeComparator.prototype.visitNull = compareAny;\nTypeComparator.prototype.visitBool = compareAny;\nTypeComparator.prototype.visitInt = compareInt;\nTypeComparator.prototype.visitInt8 = compareInt;\nTypeComparator.prototype.visitInt16 = compareInt;\nTypeComparator.prototype.visitInt32 = compareInt;\nTypeComparator.prototype.visitInt64 = compareInt;\nTypeComparator.prototype.visitUint8 = compareInt;\nTypeComparator.prototype.visitUint16 = compareInt;\nTypeComparator.prototype.visitUint32 = compareInt;\nTypeComparator.prototype.visitUint64 = compareInt;\nTypeComparator.prototype.visitFloat = compareFloat;\nTypeComparator.prototype.visitFloat16 = compareFloat;\nTypeComparator.prototype.visitFloat32 = compareFloat;\nTypeComparator.prototype.visitFloat64 = compareFloat;\nTypeComparator.prototype.visitUtf8 = compareAny;\nTypeComparator.prototype.visitBinary = compareAny;\nTypeComparator.prototype.visitFixedSizeBinary = compareFixedSizeBinary;\nTypeComparator.prototype.visitDate = compareDate;\nTypeComparator.prototype.visitDateDay = compareDate;\nTypeComparator.prototype.visitDateMillisecond = compareDate;\nTypeComparator.prototype.visitTimestamp = compareTimestamp;\nTypeComparator.prototype.visitTimestampSecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampMillisecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampMicrosecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampNanosecond = compareTimestamp;\nTypeComparator.prototype.visitTime = compareTime;\nTypeComparator.prototype.visitTimeSecond = compareTime;\nTypeComparator.prototype.visitTimeMillisecond = compareTime;\nTypeComparator.prototype.visitTimeMicrosecond = compareTime;\nTypeComparator.prototype.visitTimeNanosecond = compareTime;\nTypeComparator.prototype.visitDecimal = compareAny;\nTypeComparator.prototype.visitList = compareList;\nTypeComparator.prototype.visitStruct = compareStruct;\nTypeComparator.prototype.visitUnion = compareUnion;\nTypeComparator.prototype.visitDenseUnion = compareUnion;\nTypeComparator.prototype.visitSparseUnion = compareUnion;\nTypeComparator.prototype.visitDictionary = compareDictionary;\nTypeComparator.prototype.visitInterval = compareInterval;\nTypeComparator.prototype.visitIntervalDayTime = compareInterval;\nTypeComparator.prototype.visitIntervalYearMonth = compareInterval;\nTypeComparator.prototype.visitFixedSizeList = compareFixedSizeList;\nTypeComparator.prototype.visitMap = compareMap;\n\n/** @ignore */\nexport const instance = new TypeComparator();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/* tslint:disable:class-name */\n\nimport { Field } from './schema';\nimport { flatbuffers } from 'flatbuffers';\nimport { TypedArrayConstructor } from './interfaces';\nimport { VectorType as V, TypeToDataType } from './interfaces';\nimport { instance as comparer } from './visitor/typecomparator';\n\nimport Long = flatbuffers.Long;\nimport {\n Type,\n Precision, UnionMode,\n DateUnit, TimeUnit, IntervalUnit\n} from './enum';\n\n/** @ignore */\nexport type TimeBitWidth = 32 | 64;\n/** @ignore */\nexport type IntBitWidth = 8 | 16 | 32 | 64;\n/** @ignore */\nexport type IsSigned = { 'true': true; 'false': false };\n/** @ignore */\nexport type RowLike =\n ( Iterable<[string, T[keyof T]['TValue'] | null]> )\n & { [P in keyof T]: T[P]['TValue'] | null }\n & { get(key: K): T[K]['TValue'] | null; }\n & { set(key: K, val: T[K]['TValue'] | null): void; }\n ;\n\n/** @ignore */\nexport type MapLike =\n { [P in K['TValue']]: V['TValue'] | null }\n & ( Map )\n ;\n\nexport interface DataType {\n readonly TType: TType;\n readonly TArray: any;\n readonly TValue: any;\n readonly ArrayType: any;\n readonly children: Field[];\n}\n\n/**\n * An abstract base class for classes that encapsulate metadata about each of\n * the logical types that Arrow can represent.\n */\nexport abstract class DataType {\n\n // @ts-ignore\n public [Symbol.toStringTag]: string;\n\n /** @nocollapse */ static isNull (x: any): x is Null { return x && x.typeId === Type.Null; }\n /** @nocollapse */ static isInt (x: any): x is Int_ { return x && x.typeId === Type.Int; }\n /** @nocollapse */ static isFloat (x: any): x is Float { return x && x.typeId === Type.Float; }\n /** @nocollapse */ static isBinary (x: any): x is Binary { return x && x.typeId === Type.Binary; }\n /** @nocollapse */ static isUtf8 (x: any): x is Utf8 { return x && x.typeId === Type.Utf8; }\n /** @nocollapse */ static isBool (x: any): x is Bool { return x && x.typeId === Type.Bool; }\n /** @nocollapse */ static isDecimal (x: any): x is Decimal { return x && x.typeId === Type.Decimal; }\n /** @nocollapse */ static isDate (x: any): x is Date_ { return x && x.typeId === Type.Date; }\n /** @nocollapse */ static isTime (x: any): x is Time_ { return x && x.typeId === Type.Time; }\n /** @nocollapse */ static isTimestamp (x: any): x is Timestamp_ { return x && x.typeId === Type.Timestamp; }\n /** @nocollapse */ static isInterval (x: any): x is Interval_ { return x && x.typeId === Type.Interval; }\n /** @nocollapse */ static isList (x: any): x is List { return x && x.typeId === Type.List; }\n /** @nocollapse */ static isStruct (x: any): x is Struct { return x && x.typeId === Type.Struct; }\n /** @nocollapse */ static isUnion (x: any): x is Union_ { return x && x.typeId === Type.Union; }\n /** @nocollapse */ static isFixedSizeBinary (x: any): x is FixedSizeBinary { return x && x.typeId === Type.FixedSizeBinary; }\n /** @nocollapse */ static isFixedSizeList (x: any): x is FixedSizeList { return x && x.typeId === Type.FixedSizeList; }\n /** @nocollapse */ static isMap (x: any): x is Map_ { return x && x.typeId === Type.Map; }\n /** @nocollapse */ static isDictionary (x: any): x is Dictionary { return x && x.typeId === Type.Dictionary; }\n\n public get typeId(): TType { return Type.NONE; }\n public compareTo(other: DataType): other is TypeToDataType {\n return comparer.visit(this, other);\n }\n\n protected static [Symbol.toStringTag] = ((proto: DataType) => {\n ( proto).children = null;\n ( proto).ArrayType = Array;\n return proto[Symbol.toStringTag] = 'DataType';\n })(DataType.prototype);\n}\n\n/** @ignore */\nexport interface Null extends DataType { TArray: void; TValue: null; }\n/** @ignore */\nexport class Null extends DataType {\n public toString() { return `Null`; }\n public get typeId() { return Type.Null as Type.Null; }\n protected static [Symbol.toStringTag] = ((proto: Null) => {\n return proto[Symbol.toStringTag] = 'Null';\n })(Null.prototype);\n}\n\n/** @ignore */\ntype Ints = Type.Int | Type.Int8 | Type.Int16 | Type.Int32 | Type.Int64 | Type.Uint8 | Type.Uint16 | Type.Uint32 | Type.Uint64;\n/** @ignore */\ntype IType = {\n [Type.Int ]: { bitWidth: IntBitWidth; isSigned: true | false; TArray: IntArray; TValue: number | bigint | Int32Array | Uint32Array; };\n [Type.Int8 ]: { bitWidth: 8; isSigned: true; TArray: Int8Array; TValue: number; };\n [Type.Int16 ]: { bitWidth: 16; isSigned: true; TArray: Int16Array; TValue: number; };\n [Type.Int32 ]: { bitWidth: 32; isSigned: true; TArray: Int32Array; TValue: number; };\n [Type.Int64 ]: { bitWidth: 64; isSigned: true; TArray: Int32Array; TValue: bigint | Int32Array | Uint32Array; };\n [Type.Uint8 ]: { bitWidth: 8; isSigned: false; TArray: Uint8Array; TValue: number; };\n [Type.Uint16]: { bitWidth: 16; isSigned: false; TArray: Uint16Array; TValue: number; };\n [Type.Uint32]: { bitWidth: 32; isSigned: false; TArray: Uint32Array; TValue: number; };\n [Type.Uint64]: { bitWidth: 64; isSigned: false; TArray: Uint32Array; TValue: bigint | Int32Array | Uint32Array; };\n};\n\n/** @ignore */\ninterface Int_ extends DataType { TArray: IType[T]['TArray']; TValue: IType[T]['TValue']; }\n/** @ignore */\nclass Int_ extends DataType {\n constructor(public readonly isSigned: IType[T]['isSigned'],\n public readonly bitWidth: IType[T]['bitWidth']) {\n super();\n }\n public get typeId() { return Type.Int as T; }\n public get ArrayType(): TypedArrayConstructor {\n switch (this.bitWidth) {\n case 8: return this.isSigned ? Int8Array : Uint8Array;\n case 16: return this.isSigned ? Int16Array : Uint16Array;\n case 32: return this.isSigned ? Int32Array : Uint32Array;\n case 64: return this.isSigned ? Int32Array : Uint32Array;\n }\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n public toString() { return `${this.isSigned ? `I` : `Ui`}nt${this.bitWidth}`; }\n protected static [Symbol.toStringTag] = ((proto: Int_) => {\n ( proto).isSigned = null;\n ( proto).bitWidth = null;\n return proto[Symbol.toStringTag] = 'Int';\n })(Int_.prototype);\n}\n\nexport { Int_ as Int };\n\n/** @ignore */\nexport class Int8 extends Int_ { constructor() { super(true, 8); } }\n/** @ignore */\nexport class Int16 extends Int_ { constructor() { super(true, 16); } }\n/** @ignore */\nexport class Int32 extends Int_ { constructor() { super(true, 32); } }\n/** @ignore */\nexport class Int64 extends Int_ { constructor() { super(true, 64); } }\n/** @ignore */\nexport class Uint8 extends Int_ { constructor() { super(false, 8); } }\n/** @ignore */\nexport class Uint16 extends Int_ { constructor() { super(false, 16); } }\n/** @ignore */\nexport class Uint32 extends Int_ { constructor() { super(false, 32); } }\n/** @ignore */\nexport class Uint64 extends Int_ { constructor() { super(false, 64); } }\n\nObject.defineProperty(Int8.prototype, 'ArrayType', { value: Int8Array });\nObject.defineProperty(Int16.prototype, 'ArrayType', { value: Int16Array });\nObject.defineProperty(Int32.prototype, 'ArrayType', { value: Int32Array });\nObject.defineProperty(Int64.prototype, 'ArrayType', { value: Int32Array });\nObject.defineProperty(Uint8.prototype, 'ArrayType', { value: Uint8Array });\nObject.defineProperty(Uint16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Uint32.prototype, 'ArrayType', { value: Uint32Array });\nObject.defineProperty(Uint64.prototype, 'ArrayType', { value: Uint32Array });\n\n/** @ignore */\ntype Floats = Type.Float | Type.Float16 | Type.Float32 | Type.Float64;\n/** @ignore */\ntype FType = {\n [Type.Float ]: { precision: Precision; TArray: FloatArray; TValue: number; };\n [Type.Float16]: { precision: Precision.HALF; TArray: Uint16Array; TValue: number; };\n [Type.Float32]: { precision: Precision.SINGLE; TArray: Float32Array; TValue: number; };\n [Type.Float64]: { precision: Precision.DOUBLE; TArray: Float64Array; TValue: number; };\n};\n\n/** @ignore */\nexport interface Float extends DataType { TArray: FType[T]['TArray']; TValue: number; }\n/** @ignore */\nexport class Float extends DataType {\n constructor(public readonly precision: Precision) {\n super();\n }\n public get typeId() { return Type.Float as T; }\n public get ArrayType(): TypedArrayConstructor {\n switch (this.precision) {\n case Precision.HALF: return Uint16Array;\n case Precision.SINGLE: return Float32Array;\n case Precision.DOUBLE: return Float64Array;\n }\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n public toString() { return `Float${(this.precision << 5) || 16}`; }\n protected static [Symbol.toStringTag] = ((proto: Float) => {\n ( proto).precision = null;\n return proto[Symbol.toStringTag] = 'Float';\n })(Float.prototype);\n}\n\n/** @ignore */\nexport class Float16 extends Float { constructor() { super(Precision.HALF); } }\n/** @ignore */\nexport class Float32 extends Float { constructor() { super(Precision.SINGLE); } }\n/** @ignore */\nexport class Float64 extends Float { constructor() { super(Precision.DOUBLE); } }\n\nObject.defineProperty(Float16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Float32.prototype, 'ArrayType', { value: Float32Array });\nObject.defineProperty(Float64.prototype, 'ArrayType', { value: Float64Array });\n\n/** @ignore */\nexport interface Binary extends DataType { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Binary extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Binary as Type.Binary; }\n public toString() { return `Binary`; }\n protected static [Symbol.toStringTag] = ((proto: Binary) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Binary';\n })(Binary.prototype);\n}\n\n/** @ignore */\nexport interface Utf8 extends DataType { TArray: Uint8Array; TValue: string; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Utf8 extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Utf8 as Type.Utf8; }\n public toString() { return `Utf8`; }\n protected static [Symbol.toStringTag] = ((proto: Utf8) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Utf8';\n })(Utf8.prototype);\n}\n\n/** @ignore */\nexport interface Bool extends DataType { TArray: Uint8Array; TValue: boolean; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Bool extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Bool as Type.Bool; }\n public toString() { return `Bool`; }\n protected static [Symbol.toStringTag] = ((proto: Bool) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Bool';\n })(Bool.prototype);\n}\n\n/** @ignore */\nexport interface Decimal extends DataType { TArray: Uint32Array; TValue: Uint32Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Decimal extends DataType {\n constructor(public readonly scale: number,\n public readonly precision: number) {\n super();\n }\n public get typeId() { return Type.Decimal as Type.Decimal; }\n public toString() { return `Decimal[${this.precision}e${this.scale > 0 ? `+` : ``}${this.scale}]`; }\n protected static [Symbol.toStringTag] = ((proto: Decimal) => {\n ( proto).scale = null;\n ( proto).precision = null;\n ( proto).ArrayType = Uint32Array;\n return proto[Symbol.toStringTag] = 'Decimal';\n })(Decimal.prototype);\n}\n\n/** @ignore */\nexport type Dates = Type.Date | Type.DateDay | Type.DateMillisecond;\n/** @ignore */\nexport interface Date_ extends DataType { TArray: Int32Array; TValue: Date; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Date_ extends DataType {\n constructor(public readonly unit: DateUnit) {\n super();\n }\n public get typeId() { return Type.Date as T; }\n public toString() { return `Date${(this.unit + 1) * 32}<${DateUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Date_) => {\n ( proto).unit = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Date';\n })(Date_.prototype);\n}\n\n/** @ignore */\nexport class DateDay extends Date_ { constructor() { super(DateUnit.DAY); } }\n/** @ignore */\nexport class DateMillisecond extends Date_ { constructor() { super(DateUnit.MILLISECOND); } }\n\n/** @ignore */\ntype Times = Type.Time | Type.TimeSecond | Type.TimeMillisecond | Type.TimeMicrosecond | Type.TimeNanosecond;\n/** @ignore */\ntype TimesType = {\n [Type.Time ]: { unit: TimeUnit; TValue: number | Int32Array };\n [Type.TimeSecond ]: { unit: TimeUnit.SECOND; TValue: number; };\n [Type.TimeMillisecond]: { unit: TimeUnit.MILLISECOND; TValue: number; };\n [Type.TimeMicrosecond]: { unit: TimeUnit.MICROSECOND; TValue: Int32Array; };\n [Type.TimeNanosecond ]: { unit: TimeUnit.NANOSECOND; TValue: Int32Array; };\n};\n\n/** @ignore */\ninterface Time_ extends DataType { TArray: Int32Array; TValue: TimesType[T]['TValue']; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Time_ extends DataType {\n constructor(public readonly unit: TimesType[T]['unit'],\n public readonly bitWidth: TimeBitWidth) {\n super();\n }\n public get typeId() { return Type.Time as T; }\n public toString() { return `Time${this.bitWidth}<${TimeUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Time_) => {\n ( proto).unit = null;\n ( proto).bitWidth = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Time';\n })(Time_.prototype);\n}\n\nexport { Time_ as Time };\n\n/** @ignore */\nexport class TimeSecond extends Time_ { constructor() { super(TimeUnit.SECOND, 32); } }\n/** @ignore */\nexport class TimeMillisecond extends Time_ { constructor() { super(TimeUnit.MILLISECOND, 32); } }\n/** @ignore */\nexport class TimeMicrosecond extends Time_ { constructor() { super(TimeUnit.MICROSECOND, 64); } }\n/** @ignore */\nexport class TimeNanosecond extends Time_ { constructor() { super(TimeUnit.NANOSECOND, 64); } }\n\n/** @ignore */\ntype Timestamps = Type.Timestamp | Type.TimestampSecond | Type.TimestampMillisecond | Type.TimestampMicrosecond | Type.TimestampNanosecond;\n/** @ignore */\ninterface Timestamp_ extends DataType { TArray: Int32Array; TValue: number; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Timestamp_ extends DataType {\n constructor(public readonly unit: TimeUnit,\n public readonly timezone?: string | null) {\n super();\n }\n public get typeId() { return Type.Timestamp as T; }\n public toString() { return `Timestamp<${TimeUnit[this.unit]}${this.timezone ? `, ${this.timezone}` : ``}>`; }\n protected static [Symbol.toStringTag] = ((proto: Timestamp_) => {\n ( proto).unit = null;\n ( proto).timezone = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Timestamp';\n })(Timestamp_.prototype);\n}\n\nexport { Timestamp_ as Timestamp };\n\n/** @ignore */\nexport class TimestampSecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.SECOND, timezone); } }\n/** @ignore */\nexport class TimestampMillisecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.MILLISECOND, timezone); } }\n/** @ignore */\nexport class TimestampMicrosecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.MICROSECOND, timezone); } }\n/** @ignore */\nexport class TimestampNanosecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.NANOSECOND, timezone); } }\n\n/** @ignore */\ntype Intervals = Type.Interval | Type.IntervalDayTime | Type.IntervalYearMonth;\n/** @ignore */\ninterface Interval_ extends DataType { TArray: Int32Array; TValue: Int32Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Interval_ extends DataType {\n constructor(public readonly unit: IntervalUnit) {\n super();\n }\n public get typeId() { return Type.Interval as T; }\n public toString() { return `Interval<${IntervalUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Interval_) => {\n ( proto).unit = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Interval';\n })(Interval_.prototype);\n}\n\nexport { Interval_ as Interval };\n\n/** @ignore */\nexport class IntervalDayTime extends Interval_ { constructor() { super(IntervalUnit.DAY_TIME); } }\n/** @ignore */\nexport class IntervalYearMonth extends Interval_ { constructor() { super(IntervalUnit.YEAR_MONTH); } }\n\n/** @ignore */\nexport interface List extends DataType { TArray: IterableArrayLike; TValue: V; }\n/** @ignore */\nexport class List extends DataType {\n constructor(child: Field) {\n super();\n this.children = [child];\n }\n public readonly children: Field[];\n public get typeId() { return Type.List as Type.List; }\n public toString() { return `List<${this.valueType}>`; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field { return this.children[0] as Field; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n protected static [Symbol.toStringTag] = ((proto: List) => {\n ( proto).children = null;\n return proto[Symbol.toStringTag] = 'List';\n })(List.prototype);\n}\n\n/** @ignore */\nexport interface Struct extends DataType { TArray: IterableArrayLike>; TValue: RowLike; dataTypes: T; }\n/** @ignore */\nexport class Struct extends DataType {\n public readonly children: Field[];\n constructor(children: Field[]) {\n super();\n this.children = children;\n }\n public get typeId() { return Type.Struct as Type.Struct; }\n public toString() { return `Struct<{${this.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Struct) => {\n ( proto).children = null;\n return proto[Symbol.toStringTag] = 'Struct';\n })(Struct.prototype);\n}\n\n/** @ignore */\ntype Unions = Type.Union | Type.DenseUnion | Type.SparseUnion;\n/** @ignore */\ninterface Union_ extends DataType { TArray: Int8Array; TValue: any; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Union_ extends DataType {\n public readonly mode: UnionMode;\n public readonly typeIds: Int32Array;\n public readonly children: Field[];\n public readonly typeIdToChildIndex: { [key: number]: number };\n constructor(mode: UnionMode,\n typeIds: number[] | Int32Array,\n children: Field[]) {\n super();\n this.mode = mode;\n this.children = children;\n this.typeIds = typeIds = Int32Array.from(typeIds);\n this.typeIdToChildIndex = typeIds.reduce((typeIdToChildIndex, typeId, idx) => {\n return (typeIdToChildIndex[typeId] = idx) && typeIdToChildIndex || typeIdToChildIndex;\n }, Object.create(null) as { [key: number]: number });\n }\n public get typeId() { return Type.Union as T; }\n public toString() { return `${this[Symbol.toStringTag]}<${\n this.children.map((x) => `${x.type}`).join(` | `)\n }>`; }\n protected static [Symbol.toStringTag] = ((proto: Union_) => {\n ( proto).mode = null;\n ( proto).typeIds = null;\n ( proto).children = null;\n ( proto).typeIdToChildIndex = null;\n ( proto).ArrayType = Int8Array;\n return proto[Symbol.toStringTag] = 'Union';\n })(Union_.prototype);\n}\n\nexport { Union_ as Union };\n\n/** @ignore */\nexport class DenseUnion extends Union_ {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Dense, typeIds, children);\n }\n}\n\n/** @ignore */\nexport class SparseUnion extends Union_ {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Sparse, typeIds, children);\n }\n}\n\n/** @ignore */\nexport interface FixedSizeBinary extends DataType { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class FixedSizeBinary extends DataType {\n constructor(public readonly byteWidth: number) {\n super();\n }\n public get typeId() { return Type.FixedSizeBinary as Type.FixedSizeBinary; }\n public toString() { return `FixedSizeBinary[${this.byteWidth}]`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeBinary) => {\n ( proto).byteWidth = null;\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'FixedSizeBinary';\n })(FixedSizeBinary.prototype);\n}\n\n/** @ignore */\nexport interface FixedSizeList extends DataType { TArray: IterableArrayLike; TValue: V; }\n/** @ignore */\nexport class FixedSizeList extends DataType {\n public readonly children: Field[];\n constructor(public readonly listSize: number, child: Field) {\n super();\n this.children = [child];\n }\n public get typeId() { return Type.FixedSizeList as Type.FixedSizeList; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field { return this.children[0] as Field; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n public toString() { return `FixedSizeList[${this.listSize}]<${this.valueType}>`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeList) => {\n ( proto).children = null;\n ( proto).listSize = null;\n return proto[Symbol.toStringTag] = 'FixedSizeList';\n })(FixedSizeList.prototype);\n}\n\n/** @ignore */\nexport interface Map_ extends DataType {\n TArray: IterableArrayLike>;\n TChild: Struct<{ key: TKey, value: TValue }>;\n TValue: MapLike;\n}\n\n/** @ignore */\nexport class Map_ extends DataType {\n constructor(child: Field>, keysSorted = false) {\n super();\n this.children = [child];\n this.keysSorted = keysSorted;\n }\n public readonly keysSorted: boolean;\n public readonly children: Field>[];\n public get typeId() { return Type.Map as Type.Map; }\n public get keyType(): TKey { return this.children[0].type.children[0].type as TKey; }\n public get valueType(): TValue { return this.children[0].type.children[1].type as TValue; }\n public toString() { return `Map<{${this.children[0].type.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Map_) => {\n ( proto).children = null;\n ( proto).keysSorted = null;\n return proto[Symbol.toStringTag] = 'Map_';\n })(Map_.prototype);\n}\n\n/** @ignore */\nconst getId = ((atomicDictionaryId) => () => ++atomicDictionaryId)(-1);\n\n/** @ignore */\nexport type TKeys = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32;\n\n/** @ignore */\nexport interface Dictionary extends DataType { TArray: TKey['TArray']; TValue: T['TValue']; }\n/** @ignore */\nexport class Dictionary extends DataType {\n public readonly id: number;\n public readonly indices: TKey;\n public readonly dictionary: T;\n public readonly isOrdered: boolean;\n constructor(dictionary: T, indices: TKey, id?: Long | number | null, isOrdered?: boolean | null) {\n super();\n this.indices = indices;\n this.dictionary = dictionary;\n this.isOrdered = isOrdered || false;\n this.id = id == null ? getId() : typeof id === 'number' ? id : id.low;\n }\n public get typeId() { return Type.Dictionary as Type.Dictionary; }\n public get children() { return this.dictionary.children; }\n public get valueType(): T { return this.dictionary as T; }\n public get ArrayType(): T['ArrayType'] { return this.dictionary.ArrayType; }\n public toString() { return `Dictionary<${this.indices}, ${this.dictionary}>`; }\n protected static [Symbol.toStringTag] = ((proto: Dictionary) => {\n ( proto).id = null;\n ( proto).indices = null;\n ( proto).isOrdered = null;\n ( proto).dictionary = null;\n return proto[Symbol.toStringTag] = 'Dictionary';\n })(Dictionary.prototype);\n}\n\n/** @ignore */\nexport interface IterableArrayLike extends ArrayLike, Iterable {}\n/** @ignore */\nexport type FloatArray = Uint16Array | Float32Array | Float64Array;\n/** @ignore */\nexport type IntArray = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;\n\n/** @ignore */\nexport function strideForType(type: DataType) {\n let t: any = type;\n switch (type.typeId) {\n case Type.Decimal: return 4;\n case Type.Timestamp: return 2;\n case Type.Date: return 1 + (t as Date_).unit;\n case Type.Interval: return 1 + (t as Interval_).unit;\n case Type.Int: return 1 + +((t as Int_).bitWidth > 32);\n case Type.Time: return 1 + +((t as Time_).bitWidth > 32);\n case Type.FixedSizeList: return (t as FixedSizeList).listSize;\n case Type.FixedSizeBinary: return (t as FixedSizeBinary).byteWidth;\n default: return 1;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from './vector';\nimport { truncateBitmap } from './util/bit';\nimport { popcnt_bit_range } from './util/bit';\nimport { BufferType, UnionMode, Type } from './enum';\nimport { DataType, SparseUnion, DenseUnion, strideForType } from './type';\nimport { toArrayBufferView, toUint8Array, toInt32Array } from './util/buffer';\nimport {\n Dictionary,\n Null, Int, Float,\n Binary, Bool, Utf8, Decimal,\n Date_, Time, Timestamp, Interval,\n List, Struct, Union, FixedSizeBinary, FixedSizeList, Map_,\n} from './type';\n\n// When slicing, we do not know the null count of the sliced range without\n// doing some computation. To avoid doing this eagerly, we set the null count\n// to -1 (any negative number will do). When Vector.nullCount is called the\n// first time, the null count will be computed. See ARROW-33\n/** @ignore */ export type kUnknownNullCount = -1;\n/** @ignore */ export const kUnknownNullCount = -1;\n\n/** @ignore */ export type NullBuffer = Uint8Array | null | undefined;\n/** @ignore */ export type TypeIdsBuffer = Int8Array | ArrayLike | Iterable | undefined;\n/** @ignore */ export type ValueOffsetsBuffer = Int32Array | ArrayLike | Iterable | undefined;\n/** @ignore */ export type DataBuffer = T['TArray'] | ArrayLike | Iterable | undefined;\n\n/** @ignore */\nexport interface Buffers {\n [BufferType.OFFSET]: Int32Array;\n [BufferType.DATA]: T['TArray'];\n [BufferType.VALIDITY]: Uint8Array;\n [BufferType.TYPE]: T['TArray'];\n}\n\n/** @ignore */\nexport interface Data {\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\n/** @ignore */\nexport class Data {\n\n public readonly type: T;\n public readonly length: number;\n public readonly offset: number;\n public readonly stride: number;\n public readonly childData: Data[];\n\n /**\n * The dictionary for this Vector, if any. Only used for Dictionary type.\n */\n public dictionary?: Vector;\n\n public readonly values: Buffers[BufferType.DATA];\n // @ts-ignore\n public readonly typeIds: Buffers[BufferType.TYPE];\n // @ts-ignore\n public readonly nullBitmap: Buffers[BufferType.VALIDITY];\n // @ts-ignore\n public readonly valueOffsets: Buffers[BufferType.OFFSET];\n\n public get typeId(): T['TType'] { return this.type.typeId; }\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n public get buffers() {\n return [this.valueOffsets, this.values, this.nullBitmap, this.typeIds] as Buffers;\n }\n public get byteLength(): number {\n let byteLength = 0;\n let { valueOffsets, values, nullBitmap, typeIds } = this;\n valueOffsets && (byteLength += valueOffsets.byteLength);\n values && (byteLength += values.byteLength);\n nullBitmap && (byteLength += nullBitmap.byteLength);\n typeIds && (byteLength += typeIds.byteLength);\n return this.childData.reduce((byteLength, child) => byteLength + child.byteLength, byteLength);\n }\n\n protected _nullCount: number | kUnknownNullCount;\n\n public get nullCount() {\n let nullCount = this._nullCount;\n let nullBitmap: Uint8Array | undefined;\n if (nullCount <= kUnknownNullCount && (nullBitmap = this.nullBitmap)) {\n this._nullCount = nullCount = this.length - popcnt_bit_range(nullBitmap, this.offset, this.offset + this.length);\n }\n return nullCount;\n }\n\n constructor(type: T, offset: number, length: number, nullCount?: number, buffers?: Partial> | Data, childData?: (Data | Vector)[], dictionary?: Vector) {\n this.type = type;\n this.dictionary = dictionary;\n this.offset = Math.floor(Math.max(offset || 0, 0));\n this.length = Math.floor(Math.max(length || 0, 0));\n this._nullCount = Math.floor(Math.max(nullCount || 0, -1));\n this.childData = (childData || []).map((x) => x instanceof Data ? x : x.data) as Data[];\n let buffer: Buffers[keyof Buffers];\n if (buffers instanceof Data) {\n this.stride = buffers.stride;\n this.values = buffers.values;\n this.typeIds = buffers.typeIds;\n this.nullBitmap = buffers.nullBitmap;\n this.valueOffsets = buffers.valueOffsets;\n } else {\n this.stride = strideForType(type);\n if (buffers) {\n (buffer = (buffers as Buffers)[0]) && (this.valueOffsets = buffer);\n (buffer = (buffers as Buffers)[1]) && (this.values = buffer);\n (buffer = (buffers as Buffers)[2]) && (this.nullBitmap = buffer);\n (buffer = (buffers as Buffers)[3]) && (this.typeIds = buffer);\n }\n }\n }\n\n public clone(type: R, offset = this.offset, length = this.length, nullCount = this._nullCount, buffers: Buffers = this, childData: (Data | Vector)[] = this.childData) {\n return new Data(type, offset, length, nullCount, buffers, childData, this.dictionary);\n }\n\n public slice(offset: number, length: number): Data {\n const { stride, typeId, childData } = this;\n // +true === 1, +false === 0, so this means\n // we keep nullCount at 0 if it's already 0,\n // otherwise set to the invalidated flag -1\n const nullCount = +(this._nullCount === 0) - 1;\n const childStride = typeId === 16 /* FixedSizeList */ ? stride : 1;\n const buffers = this._sliceBuffers(offset, length, stride, typeId);\n return this.clone(this.type, this.offset + offset, length, nullCount, buffers,\n // Don't slice children if we have value offsets (the variable-width types)\n (!childData.length || this.valueOffsets) ? childData : this._sliceChildren(childData, childStride * offset, childStride * length));\n }\n\n public _changeLengthAndBackfillNullBitmap(newLength: number): Data {\n if (this.typeId === Type.Null) {\n return this.clone(this.type, 0, newLength, 0);\n }\n const { length, nullCount } = this;\n // start initialized with 0s (nulls), then fill from 0 to length with 1s (not null)\n const bitmap = new Uint8Array(((newLength + 63) & ~63) >> 3).fill(255, 0, length >> 3);\n // set all the bits in the last byte (up to bit `length - length % 8`) to 1 (not null)\n bitmap[length >> 3] = (1 << (length - (length & ~7))) - 1;\n // if we have a nullBitmap, truncate + slice and set it over the pre-filled 1s\n if (nullCount > 0) {\n bitmap.set(truncateBitmap(this.offset, length, this.nullBitmap), 0);\n }\n const buffers = this.buffers;\n buffers[BufferType.VALIDITY] = bitmap;\n return this.clone(this.type, 0, newLength, nullCount + (newLength - length), buffers);\n }\n\n protected _sliceBuffers(offset: number, length: number, stride: number, typeId: T['TType']): Buffers {\n let arr: any, { buffers } = this;\n // If typeIds exist, slice the typeIds buffer\n (arr = buffers[BufferType.TYPE]) && (buffers[BufferType.TYPE] = arr.subarray(offset, offset + length));\n // If offsets exist, only slice the offsets buffer\n (arr = buffers[BufferType.OFFSET]) && (buffers[BufferType.OFFSET] = arr.subarray(offset, offset + length + 1)) ||\n // Otherwise if no offsets, slice the data buffer. Don't slice the data vector for Booleans, since the offset goes by bits not bytes\n (arr = buffers[BufferType.DATA]) && (buffers[BufferType.DATA] = typeId === 6 ? arr : arr.subarray(stride * offset, stride * (offset + length)));\n return buffers;\n }\n\n protected _sliceChildren(childData: Data[], offset: number, length: number): Data[] {\n return childData.map((child) => child.slice(offset, length));\n }\n\n //\n // Convenience methods for creating Data instances for each of the Arrow Vector types\n //\n /** @nocollapse */\n public static new(type: T, offset: number, length: number, nullCount?: number, buffers?: Partial> | Data, childData?: (Data | Vector)[], dictionary?: Vector): Data {\n if (buffers instanceof Data) { buffers = buffers.buffers; } else if (!buffers) { buffers = [] as Partial>; }\n switch (type.typeId) {\n case Type.Null: return Data.Null( type as Null, offset, length) as Data;\n case Type.Int: return Data.Int( type as Int, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Dictionary: return Data.Dictionary( type as Dictionary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || [], dictionary!) as Data;\n case Type.Float: return Data.Float( type as Float, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Bool: return Data.Bool( type as Bool, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Decimal: return Data.Decimal( type as Decimal, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Date: return Data.Date( type as Date_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Time: return Data.Time( type as Time, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Timestamp: return Data.Timestamp( type as Timestamp, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Interval: return Data.Interval( type as Interval, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.FixedSizeBinary: return Data.FixedSizeBinary( type as FixedSizeBinary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Binary: return Data.Binary( type as Binary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data;\n case Type.Utf8: return Data.Utf8( type as Utf8, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data;\n case Type.List: return Data.List( type as List, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data;\n case Type.FixedSizeList: return Data.FixedSizeList( type as FixedSizeList, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], (childData || [])[0]) as Data;\n case Type.Struct: return Data.Struct( type as Struct, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], childData || []) as Data;\n case Type.Map: return Data.Map( type as Map_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data;\n case Type.Union: return Data.Union( type as Union, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.TYPE] || [], buffers[BufferType.OFFSET] || childData, childData) as Data;\n }\n throw new Error(`Unrecognized typeId ${type.typeId}`);\n }\n\n /** @nocollapse */\n public static Null(type: T, offset: number, length: number) {\n return new Data(type, offset, length, 0);\n }\n /** @nocollapse */\n public static Int(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Dictionary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer, dictionary: Vector) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.indices.ArrayType, data), toUint8Array(nullBitmap)], [], dictionary);\n }\n /** @nocollapse */\n public static Float(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Bool(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Decimal(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Date(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Time(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Timestamp(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Interval(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static FixedSizeBinary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Binary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: Uint8Array) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Utf8(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: Uint8Array) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static List(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, child: Data | Vector) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), undefined, toUint8Array(nullBitmap)], [child]);\n }\n /** @nocollapse */\n public static FixedSizeList(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, child: Data | Vector) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, toUint8Array(nullBitmap)], [child]);\n }\n /** @nocollapse */\n public static Struct(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, children: (Data | Vector)[]) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, toUint8Array(nullBitmap)], children);\n }\n /** @nocollapse */\n public static Map(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, child: (Data | Vector)) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), undefined, toUint8Array(nullBitmap)], [child]);\n }\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, children: (Data | Vector)[], _?: any): Data;\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsets: ValueOffsetsBuffer, children: (Data | Vector)[]): Data;\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]): Data;\n /** @nocollapse */\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]) {\n const buffers = [\n undefined, undefined,\n toUint8Array(nullBitmap),\n toArrayBufferView(type.ArrayType, typeIds)\n ] as Partial>;\n if (type.mode === UnionMode.Sparse) {\n return new Data(type, offset, length, nullCount, buffers, valueOffsetsOrChildren as (Data | Vector)[]);\n }\n buffers[BufferType.OFFSET] = toInt32Array( valueOffsetsOrChildren);\n return new Data(type, offset, length, nullCount, buffers, children);\n }\n}\n\n(Data.prototype as any).childData = Object.freeze([]);\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */ const undf = void (0);\n\n/** @ignore */\nexport function valueToString(x: any) {\n if (x === null) { return 'null'; }\n if (x === undf) { return 'undefined'; }\n switch (typeof x) {\n case 'number': return `${x}`;\n case 'bigint': return `${x}`;\n case 'string': return `\"${x}\"`;\n }\n // If [Symbol.toPrimitive] is implemented (like in BN)\n // use it instead of JSON.stringify(). This ensures we\n // print BigInts, Decimals, and Binary in their native\n // representation\n if (typeof x[Symbol.toPrimitive] === 'function') {\n return x[Symbol.toPrimitive]('string');\n }\n return ArrayBuffer.isView(x) ? `[${x}]` : JSON.stringify(x);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../type';\nimport { valueToString } from '../util/pretty';\nimport { BigIntAvailable } from '../util/compat';\n\n/**\n * Dynamically compile the null values into an `isValid()` function whose\n * implementation is a switch statement. Microbenchmarks in v8 indicate\n * this approach is 25% faster than using an ES6 Map.\n *\n * @example\n * console.log(createIsValidFunction([null, 'N/A', NaN]));\n * `function (x) {\n * if (x !== x) return false;\n * switch (x) {\n * case null:\n * case \"N/A\":\n * return false;\n * }\n * return true;\n * }`\n *\n * @ignore\n * @param nullValues\n */\nexport function createIsValidFunction(nullValues?: ReadonlyArray) {\n\n if (!nullValues || nullValues.length <= 0) {\n // @ts-ignore\n return function isValid(value: any) { return true; };\n }\n\n let fnBody = '';\n let noNaNs = nullValues.filter((x) => x === x);\n\n if (noNaNs.length > 0) {\n fnBody = `\n switch (x) {${noNaNs.map((x) => `\n case ${valueToCase(x)}:`).join('')}\n return false;\n }`;\n }\n\n // NaN doesn't equal anything including itself, so it doesn't work as a\n // switch case. Instead we must explicitly check for NaN before the switch.\n if (nullValues.length !== noNaNs.length) {\n fnBody = `if (x !== x) return false;\\n${fnBody}`;\n }\n\n return new Function(`x`, `${fnBody}\\nreturn true;`) as (value: T['TValue'] | TNull) => boolean;\n}\n\n/** @ignore */\nfunction valueToCase(x: any) {\n if (typeof x !== 'bigint') {\n return valueToString(x);\n } else if (BigIntAvailable) {\n return `${valueToString(x)}n`;\n }\n return `\"${valueToString(x)}\"`;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { memcpy } from '../util/buffer';\nimport { BigIntAvailable, BigInt64Array, BigUint64Array } from '../util/compat';\nimport {\n TypedArray, TypedArrayConstructor,\n BigIntArray, BigIntArrayConstructor\n} from '../interfaces';\n\n/** @ignore */ type DataValue = T extends TypedArray ? number : T extends BigIntArray ? WideValue : T;\n/** @ignore */ type WideValue = T extends BigIntArray ? bigint | Int32Array | Uint32Array : never;\n/** @ignore */ type ArrayCtor =\n T extends TypedArray ? TypedArrayConstructor :\n T extends BigIntArray ? BigIntArrayConstructor :\n any;\n\n/** @ignore */\nconst roundLengthUpToNearest64Bytes = (len: number, BPE: number) => ((((len * BPE) + 63) & ~63) || 64) / BPE;\n/** @ignore */\nconst sliceOrExtendArray = (arr: T, len = 0) => (\n arr.length >= len ? arr.subarray(0, len) : memcpy(new (arr.constructor as any)(len), arr, 0)\n) as T;\n\n/** @ignore */\nexport interface BufferBuilder> {\n readonly offset: number;\n}\n\n/** @ignore */\nexport class BufferBuilder> {\n\n constructor(buffer: T, stride = 1) {\n this.buffer = buffer;\n this.stride = stride;\n this.BYTES_PER_ELEMENT = buffer.BYTES_PER_ELEMENT;\n this.ArrayType = buffer.constructor as ArrayCtor;\n this._resize(this.length = buffer.length / stride | 0);\n }\n\n public buffer: T;\n public length: number;\n public readonly stride: number;\n public readonly ArrayType: ArrayCtor;\n public readonly BYTES_PER_ELEMENT: number;\n\n public get byteLength() { return this.length * this.stride * this.BYTES_PER_ELEMENT | 0; }\n public get reservedLength() { return this.buffer.length / this.stride; }\n public get reservedByteLength() { return this.buffer.byteLength; }\n\n // @ts-ignore\n public set(index: number, value: TValue) { return this; }\n public append(value: TValue) { return this.set(this.length, value); }\n public reserve(extra: number) {\n if (extra > 0) {\n this.length += extra;\n const stride = this.stride;\n const length = this.length * stride;\n const reserved = this.buffer.length;\n if (length >= reserved) {\n this._resize(reserved === 0\n ? roundLengthUpToNearest64Bytes(length * 1, this.BYTES_PER_ELEMENT)\n : roundLengthUpToNearest64Bytes(length * 2, this.BYTES_PER_ELEMENT)\n );\n }\n }\n return this;\n }\n public flush(length = this.length) {\n length = roundLengthUpToNearest64Bytes(length * this.stride, this.BYTES_PER_ELEMENT);\n const array = sliceOrExtendArray(this.buffer, length);\n this.clear();\n return array;\n }\n public clear() {\n this.length = 0;\n this._resize(0);\n return this;\n }\n protected _resize(newLength: number) {\n return this.buffer = memcpy(new this.ArrayType(newLength), this.buffer);\n }\n}\n\n(BufferBuilder.prototype as any).offset = 0;\n\n/** @ignore */\nexport class DataBufferBuilder extends BufferBuilder {\n public last() { return this.get(this.length - 1); }\n public get(index: number) { return this.buffer[index]; }\n public set(index: number, value: number) {\n this.reserve(index - this.length + 1);\n this.buffer[index * this.stride] = value;\n return this;\n }\n}\n\n/** @ignore */\nexport class BitmapBufferBuilder extends DataBufferBuilder {\n\n constructor(data = new Uint8Array(0)) { super(data, 1 / 8); }\n\n public numValid = 0;\n public get numInvalid() { return this.length - this.numValid; }\n public get(idx: number) { return this.buffer[idx >> 3] >> idx % 8 & 1; }\n public set(idx: number, val: number) {\n const { buffer } = this.reserve(idx - this.length + 1);\n const byte = idx >> 3, bit = idx % 8, cur = buffer[byte] >> bit & 1;\n // If `val` is truthy and the current bit is 0, flip it to 1 and increment `numValid`.\n // If `val` is falsey and the current bit is 1, flip it to 0 and decrement `numValid`.\n val ? cur === 0 && ((buffer[byte] |= (1 << bit)), ++this.numValid)\n : cur === 1 && ((buffer[byte] &= ~(1 << bit)), --this.numValid);\n return this;\n }\n public clear() {\n this.numValid = 0;\n return super.clear();\n }\n}\n\n/** @ignore */\nexport class OffsetsBufferBuilder extends DataBufferBuilder {\n constructor(data = new Int32Array(1)) { super(data, 1); }\n public append(value: number) {\n return this.set(this.length - 1, value);\n }\n public set(index: number, value: number) {\n const offset = this.length - 1;\n const buffer = this.reserve(index - offset + 1).buffer;\n if (offset < index++) {\n buffer.fill(buffer[offset], offset, index);\n }\n buffer[index] = buffer[index - 1] + value;\n return this;\n }\n public flush(length = this.length - 1) {\n if (length > this.length) {\n this.set(length - 1, 0);\n }\n return super.flush(length + 1);\n }\n}\n\n/** @ignore */\nexport class WideBufferBuilder extends BufferBuilder> {\n // @ts-ignore\n public buffer64: R;\n // @ts-ignore\n protected _ArrayType64: BigIntArrayConstructor;\n public get ArrayType64() {\n return this._ArrayType64 || (this._ArrayType64 = > (this.buffer instanceof Int32Array ? BigInt64Array : BigUint64Array));\n }\n public set(index: number, value: DataValue) {\n this.reserve(index - this.length + 1);\n switch (typeof value) {\n case 'bigint': this.buffer64[index] = value; break;\n case 'number': this.buffer[index * this.stride] = value; break;\n default: this.buffer.set(value as TypedArray, index * this.stride);\n }\n return this;\n }\n protected _resize(newLength: number) {\n const data = super._resize(newLength);\n const length = data.byteLength / (this.BYTES_PER_ELEMENT * this.stride);\n if (BigIntAvailable) {\n this.buffer64 = new this.ArrayType64(data.buffer, data.byteOffset, length);\n }\n return data;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from './vector';\nimport { BufferType } from './enum';\nimport { Data, Buffers } from './data';\nimport { createIsValidFunction } from './builder/valid';\nimport { BuilderType as B, VectorType as V} from './interfaces';\nimport { BufferBuilder, BitmapBufferBuilder, DataBufferBuilder, OffsetsBufferBuilder } from './builder/buffer';\nimport {\n DataType, strideForType,\n Float, Int, Decimal, FixedSizeBinary,\n Date_, Time, Timestamp, Interval,\n Utf8, Binary, List, Map_\n} from './type';\n\n/**\n * A set of options required to create a `Builder` instance for a given `DataType`.\n * @see {@link Builder}\n */\nexport interface BuilderOptions {\n type: T;\n nullValues?: TNull[] | ReadonlyArray | null;\n children?: { [key: string]: BuilderOptions; } | BuilderOptions[];\n}\n\n/**\n * A set of options to create an Iterable or AsyncIterable `Builder` transform function.\n * @see {@link Builder.throughIterable}\n * @see {@link Builder.throughAsyncIterable}\n */\n\nexport interface IterableBuilderOptions extends BuilderOptions {\n highWaterMark?: number;\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n valueToChildTypeId?: (builder: Builder, value: any, offset: number) => number;\n}\n\n/**\n * An abstract base class for types that construct Arrow Vectors from arbitrary JavaScript values.\n *\n * A `Builder` is responsible for writing arbitrary JavaScript values\n * to ArrayBuffers and/or child Builders according to the Arrow specification\n * for each DataType, creating or resizing the underlying ArrayBuffers as necessary.\n *\n * The `Builder` for each Arrow `DataType` handles converting and appending\n * values for a given `DataType`. The high-level {@link Builder.new `Builder.new()`} convenience\n * method creates the specific `Builder` subclass for the supplied `DataType`.\n *\n * Once created, `Builder` instances support both appending values to the end\n * of the `Builder`, and random-access writes to specific indices\n * (`Builder.prototype.append(value)` is a convenience method for\n * `builder.set(builder.length, value)`). Appending or setting values beyond the\n * Builder's current length may cause the builder to grow its underlying buffers\n * or child Builders (if applicable) to accommodate the new values.\n *\n * After enough values have been written to a `Builder`, `Builder.prototype.flush()`\n * will commit the values to the underlying ArrayBuffers (or child Builders). The\n * internal Builder state will be reset, and an instance of `Data` is returned.\n * Alternatively, `Builder.prototype.toVector()` will flush the `Builder` and return\n * an instance of `Vector` instead.\n *\n * When there are no more values to write, use `Builder.prototype.finish()` to\n * finalize the `Builder`. This does not reset the internal state, so it is\n * necessary to call `Builder.prototype.flush()` or `toVector()` one last time\n * if there are still values queued to be flushed.\n *\n * Note: calling `Builder.prototype.finish()` is required when using a `DictionaryBuilder`,\n * because this is when it flushes the values that have been enqueued in its internal\n * dictionary's `Builder`, and creates the `dictionaryVector` for the `Dictionary` `DataType`.\n *\n * ```ts\n * import { Builder, Utf8 } from 'apache-arrow';\n *\n * const utf8Builder = Builder.new({\n * type: new Utf8(),\n * nullValues: [null, 'n/a']\n * });\n *\n * utf8Builder\n * .append('hello')\n * .append('n/a')\n * .append('world')\n * .append(null);\n *\n * const utf8Vector = utf8Builder.finish().toVector();\n *\n * console.log(utf8Vector.toJSON());\n * // > [\"hello\", null, \"world\", null]\n * ```\n *\n * @typeparam T The `DataType` of this `Builder`.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n */\nexport abstract class Builder {\n\n /**\n * Create a `Builder` instance based on the `type` property of the supplied `options` object.\n * @param {BuilderOptions} options An object with a required `DataType` instance\n * and other optional parameters to be passed to the `Builder` subclass for the given `type`.\n *\n * @typeparam T The `DataType` of the `Builder` to create.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n * @nocollapse\n */\n // @ts-ignore\n public static new(options: BuilderOptions): B {}\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options: import('./io/node/builder').BuilderDuplexOptions): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n // @ts-ignore\n public static throughDOM(options: import('./io/whatwg/builder').BuilderTransformOptions): import('./io/whatwg/builder').BuilderTransform {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n /**\n * Transform a synchronous `Iterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `Iterable` of values to\n * transform. When called, this function returns an Iterator of `Vector`.\n *\n * The resulting `Iterator>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `Iterator>`\n * will flush the underlying `Builder` (and yield a new `Vector`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `Iterator>` will flush\n * the underlying `Builder` (and yield a new `Vector`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `Iterable` of values to\n * write, and returns an `Iterator` that yields Vectors according\n * to the chunking semantics defined in the `options` argument.\n * @nocollapse\n */\n public static throughIterable(options: IterableBuilderOptions) {\n return throughIterable(options);\n }\n\n /**\n * Transform an `AsyncIterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `AsyncIterable` of values to\n * transform. When called, this function returns an AsyncIterator of `Vector`.\n *\n * The resulting `AsyncIterator>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `AsyncIterator>`\n * will flush the underlying `Builder` (and yield a new `Vector`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `AsyncIterator>` will flush\n * the underlying `Builder` (and yield a new `Vector`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `AsyncIterable` of values\n * to write, and returns an `AsyncIterator` that yields Vectors\n * according to the chunking semantics defined in the `options`\n * argument.\n * @nocollapse\n */\n public static throughAsyncIterable(options: IterableBuilderOptions) {\n return throughAsyncIterable(options);\n }\n\n /**\n * Construct a builder with the given Arrow DataType with optional null values,\n * which will be interpreted as \"null\" when set or appended to the `Builder`.\n * @param {{ type: T, nullValues?: any[] }} options A `BuilderOptions` object used to create this `Builder`.\n */\n constructor({ 'type': type, 'nullValues': nulls }: BuilderOptions) {\n this.type = type;\n this.children = [];\n this.nullValues = nulls;\n this.stride = strideForType(type);\n this._nulls = new BitmapBufferBuilder();\n if (nulls && nulls.length > 0) {\n this._isValid = createIsValidFunction(nulls);\n }\n }\n\n /**\n * The Builder's `DataType` instance.\n * @readonly\n */\n public type: T;\n /**\n * The number of values written to the `Builder` that haven't been flushed yet.\n * @readonly\n */\n public length = 0;\n /**\n * A boolean indicating whether `Builder.prototype.finish()` has been called on this `Builder`.\n * @readonly\n */\n public finished = false;\n /**\n * The number of elements in the underlying values TypedArray that\n * represent a single logical element, determined by this Builder's\n * `DataType`. This is 1 for most types, but is larger when the `DataType`\n * is `Int64`, `Uint64`, `Decimal`, `DateMillisecond`, certain variants of\n * `Interval`, `Time`, or `Timestamp`, `FixedSizeBinary`, and `FixedSizeList`.\n * @readonly\n */\n public readonly stride: number;\n public readonly children: Builder[];\n /**\n * The list of null-value sentinels for this `Builder`. When one of these values\n * is written to the `Builder` (either via `Builder.prototype.set()` or `Builder.prototype.append()`),\n * a 1-bit is written to this Builder's underlying null BitmapBufferBuilder.\n * @readonly\n */\n public readonly nullValues?: TNull[] | ReadonlyArray | null;\n\n /**\n * Flush the `Builder` and return a `Vector`.\n * @returns {Vector} A `Vector` of the flushed values.\n */\n public toVector() { return Vector.new(this.flush()); }\n\n public get ArrayType() { return this.type.ArrayType; }\n public get nullCount() { return this._nulls.numInvalid; }\n public get numChildren() { return this.children.length; }\n\n /**\n * @returns The aggregate length (in bytes) of the values that have been written.\n */\n public get byteLength(): number {\n let size = 0;\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n this._typeIds && (size += this._typeIds.byteLength);\n return this.children.reduce((size, child) => size + child.byteLength, size);\n }\n\n /**\n * @returns The aggregate number of rows that have been reserved to write new values.\n */\n public get reservedLength(): number {\n return this._nulls.reservedLength;\n }\n\n /**\n * @returns The aggregate length (in bytes) that has been reserved to write new values.\n */\n public get reservedByteLength(): number {\n let size = 0;\n this._offsets && (size += this._offsets.reservedByteLength);\n this._values && (size += this._values.reservedByteLength);\n this._nulls && (size += this._nulls.reservedByteLength);\n this._typeIds && (size += this._typeIds.reservedByteLength);\n return this.children.reduce((size, child) => size + child.reservedByteLength, size);\n }\n\n // @ts-ignore\n protected _offsets: DataBufferBuilder;\n public get valueOffsets() { return this._offsets ? this._offsets.buffer : null; }\n\n // @ts-ignore\n protected _values: BufferBuilder;\n public get values() { return this._values ? this._values.buffer : null; }\n\n protected _nulls: BitmapBufferBuilder;\n public get nullBitmap() { return this._nulls ? this._nulls.buffer : null; }\n\n // @ts-ignore\n protected _typeIds: DataBufferBuilder;\n public get typeIds() { return this._typeIds ? this._typeIds.buffer : null; }\n\n // @ts-ignore\n protected _isValid: (value: T['TValue'] | TNull) => boolean;\n // @ts-ignore\n protected _setValue: (inst: Builder, index: number, value: T['TValue']) => void;\n\n /**\n * Appends a value (or null) to this `Builder`.\n * This is equivalent to `builder.set(builder.length, value)`.\n * @param {T['TValue'] | TNull } value The value to append.\n */\n public append(value: T['TValue'] | TNull) { return this.set(this.length, value); }\n\n /**\n * Validates whether a value is valid (true), or null (false)\n * @param {T['TValue'] | TNull } value The value to compare against null the value representations\n */\n // @ts-ignore\n public isValid(value: T['TValue'] | TNull): boolean { return this._isValid(value); }\n\n /**\n * Write a value (or null-value sentinel) at the supplied index.\n * If the value matches one of the null-value representations, a 1-bit is\n * written to the null `BitmapBufferBuilder`. Otherwise, a 0 is written to\n * the null `BitmapBufferBuilder`, and the value is passed to\n * `Builder.prototype.setValue()`.\n * @param {number} index The index of the value to write.\n * @param {T['TValue'] | TNull } value The value to write at the supplied index.\n * @returns {this} The updated `Builder` instance.\n */\n public set(index: number, value: T['TValue'] | TNull) {\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value);\n }\n return this;\n }\n\n /**\n * Write a value to the underlying buffers at the supplied index, bypassing\n * the null-value check. This is a low-level method that\n * @param {number} index\n * @param {T['TValue'] | TNull } value\n */\n // @ts-ignore\n public setValue(index: number, value: T['TValue']) { this._setValue(this, index, value); }\n public setValid(index: number, valid: boolean) {\n this.length = this._nulls.set(index, +valid).length;\n return valid;\n }\n\n // @ts-ignore\n public addChild(child: Builder, name = `${this.numChildren}`) {\n throw new Error(`Cannot append children to non-nested type \"${this.type}\"`);\n }\n\n /**\n * Retrieve the child `Builder` at the supplied `index`, or null if no child\n * exists at that index.\n * @param {number} index The index of the child `Builder` to retrieve.\n * @returns {Builder | null} The child Builder at the supplied index or null.\n */\n public getChildAt(index: number): Builder | null {\n return this.children[index] || null;\n }\n\n /**\n * Commit all the values that have been written to their underlying\n * ArrayBuffers, including any child Builders if applicable, and reset\n * the internal `Builder` state.\n * @returns A `Data` of the buffers and childData representing the values written.\n */\n public flush() {\n\n const buffers: any = [];\n const values = this._values;\n const offsets = this._offsets;\n const typeIds = this._typeIds;\n const { length, nullCount } = this;\n\n if (typeIds) { /* Unions */\n buffers[BufferType.TYPE] = typeIds.flush(length);\n // DenseUnions\n offsets && (buffers[BufferType.OFFSET] = offsets.flush(length));\n } else if (offsets) { /* Variable-width primitives (Binary, Utf8) and Lists */\n // Binary, Utf8\n values && (buffers[BufferType.DATA] = values.flush(offsets.last()));\n buffers[BufferType.OFFSET] = offsets.flush(length);\n } else if (values) { /* Fixed-width primitives (Int, Float, Decimal, Time, Timestamp, and Interval) */\n buffers[BufferType.DATA] = values.flush(length);\n }\n\n nullCount > 0 && (buffers[BufferType.VALIDITY] = this._nulls.flush(length));\n\n const data = Data.new(\n this.type, 0, length, nullCount, buffers as Buffers,\n this.children.map((child) => child.flush())) as Data;\n\n this.clear();\n\n return data;\n }\n\n /**\n * Finalize this `Builder`, and child builders if applicable.\n * @returns {this} The finalized `Builder` instance.\n */\n public finish() {\n this.finished = true;\n this.children.forEach((child) => child.finish());\n return this;\n }\n\n /**\n * Clear this Builder's internal state, including child Builders if applicable, and reset the length to 0.\n * @returns {this} The cleared `Builder` instance.\n */\n public clear() {\n this.length = 0;\n this._offsets && (this._offsets.clear());\n this._values && (this._values.clear());\n this._nulls && (this._nulls.clear());\n this._typeIds && (this._typeIds.clear());\n this.children.forEach((child) => child.clear());\n return this;\n }\n}\n\n(Builder.prototype as any).length = 1;\n(Builder.prototype as any).stride = 1;\n(Builder.prototype as any).children = null;\n(Builder.prototype as any).finished = false;\n(Builder.prototype as any).nullValues = null;\n(Builder.prototype as any)._isValid = () => true;\n\n/** @ignore */\nexport abstract class FixedWidthBuilder extends Builder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new DataBufferBuilder(new this.ArrayType(0), this.stride);\n }\n public setValue(index: number, value: T['TValue']) {\n const values = this._values;\n values.reserve(index - values.length + 1);\n return super.setValue(index, value);\n }\n}\n\n/** @ignore */\nexport abstract class VariableWidthBuilder extends Builder {\n protected _pendingLength: number = 0;\n protected _offsets: OffsetsBufferBuilder;\n protected _pending: Map | undefined;\n constructor(opts: BuilderOptions) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder();\n }\n public setValue(index: number, value: T['TValue']) {\n const pending = this._pending || (this._pending = new Map());\n const current = pending.get(index);\n current && (this._pendingLength -= current.length);\n this._pendingLength += value.length;\n pending.set(index, value);\n }\n public setValid(index: number, isValid: boolean) {\n if (!super.setValid(index, isValid)) {\n (this._pending || (this._pending = new Map())).set(index, undefined);\n return false;\n }\n return true;\n }\n public clear() {\n this._pendingLength = 0;\n this._pending = undefined;\n return super.clear();\n }\n public flush() {\n this._flush();\n return super.flush();\n }\n public finish() {\n this._flush();\n return super.finish();\n }\n protected _flush() {\n const pending = this._pending;\n const pendingLength = this._pendingLength;\n this._pendingLength = 0;\n this._pending = undefined;\n if (pending && pending.size > 0) {\n this._flushPending(pending, pendingLength);\n }\n return this;\n }\n protected abstract _flushPending(pending: Map, pendingLength: number): void;\n}\n\n/** @ignore */\ntype ThroughIterable = (source: Iterable) => IterableIterator>;\n\n/** @ignore */\nfunction throughIterable(options: IterableBuilderOptions): ThroughIterable {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return function*(source: Iterable) {\n let numChunks = 0;\n let builder = Builder.new(options);\n for (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n };\n}\n\n/** @ignore */\ntype ThroughAsyncIterable = (source: Iterable | AsyncIterable) => AsyncIterableIterator>;\n\n/** @ignore */\nfunction throughAsyncIterable(options: IterableBuilderOptions): ThroughAsyncIterable {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return async function* (source: Iterable | AsyncIterable) {\n let numChunks = 0;\n let builder = Builder.new(options);\n for await (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n };\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Bool } from '../type';\nimport { BitmapBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class BoolBuilder extends Builder {\n constructor(options: BuilderOptions) {\n super(options);\n this._values = new BitmapBufferBuilder();\n }\n public setValue(index: number, value: boolean) {\n this._values.set(index, +value);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Null } from '../type';\nimport { Builder } from '../builder';\n\n/** @ignore */\nexport class NullBuilder extends Builder {\n // @ts-ignore\n public setValue(index: number, value: null) {}\n public setValid(index: number, valid: boolean) {\n this.length = Math.max(index + 1, this.length);\n return valid;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Date_, DateDay, DateMillisecond } from '../type';\n\n/** @ignore */\nexport class DateBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class DateDayBuilder extends DateBuilder {}\n/** @ignore */\nexport class DateMillisecondBuilder extends DateBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Decimal } from '../type';\nimport { FixedWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class DecimalBuilder extends FixedWidthBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { IntBuilder } from './int';\nimport { Dictionary, DataType } from '../type';\nimport { Builder, BuilderOptions } from '../builder';\n\ntype DictionaryHashFunction = (x: any) => string | number;\n\nexport interface DictionaryBuilderOptions extends BuilderOptions {\n dictionaryHashFunction?: DictionaryHashFunction;\n}\n\n/** @ignore */\nexport class DictionaryBuilder extends Builder {\n\n protected _dictionaryOffset: number;\n protected _dictionary?: Vector;\n protected _keysToIndices: { [key: string]: number };\n public readonly indices: IntBuilder;\n public readonly dictionary: Builder;\n\n constructor({ 'type': type, 'nullValues': nulls, 'dictionaryHashFunction': hashFn }: DictionaryBuilderOptions) {\n super({ type: new Dictionary(type.dictionary, type.indices, type.id, type.isOrdered) as T });\n this._nulls = null;\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n this.indices = Builder.new({ 'type': this.type.indices, 'nullValues': nulls }) as IntBuilder;\n this.dictionary = Builder.new({ 'type': this.type.dictionary, 'nullValues': null }) as Builder;\n if (typeof hashFn === 'function') {\n this.valueToKey = hashFn;\n }\n }\n\n public get values() { return this.indices.values; }\n public get nullCount() { return this.indices.nullCount; }\n public get nullBitmap() { return this.indices.nullBitmap; }\n public get byteLength() { return this.indices.byteLength + this.dictionary.byteLength; }\n public get reservedLength() { return this.indices.reservedLength + this.dictionary.reservedLength; }\n public get reservedByteLength() { return this.indices.reservedByteLength + this.dictionary.reservedByteLength; }\n public isValid(value: T['TValue'] | TNull) { return this.indices.isValid(value); }\n public setValid(index: number, valid: boolean) {\n const indices = this.indices;\n valid = indices.setValid(index, valid);\n this.length = indices.length;\n return valid;\n }\n public setValue(index: number, value: T['TValue']) {\n let keysToIndices = this._keysToIndices;\n let key = this.valueToKey(value);\n let idx = keysToIndices[key];\n if (idx === undefined) {\n keysToIndices[key] = idx = this._dictionaryOffset + this.dictionary.append(value).length - 1;\n }\n return this.indices.setValue(index, idx);\n }\n public flush() {\n const type = this.type;\n const prev = this._dictionary;\n const curr = this.dictionary.toVector();\n const data = this.indices.flush().clone(type);\n data.dictionary = prev ? prev.concat(curr) : curr;\n this.finished || (this._dictionaryOffset += curr.length);\n this._dictionary = data.dictionary as Vector;\n this.clear();\n return data;\n }\n public finish() {\n this.indices.finish();\n this.dictionary.finish();\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n return super.finish();\n }\n public clear() {\n this.indices.clear();\n this.dictionary.clear();\n return super.clear();\n }\n public valueToKey(val: any): string | number {\n return typeof val === 'string' ? val : `${val}`;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedSizeBinary } from '../type';\nimport { FixedWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class FixedSizeBinaryBuilder extends FixedWidthBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nconst f64 = new Float64Array(1);\nconst u32 = new Uint32Array(f64.buffer);\n\n/**\n * Convert uint16 (logically a float16) to a JS float64. Inspired by numpy's `npy_half_to_double`:\n * https://github.com/numpy/numpy/blob/5a5987291dc95376bb098be8d8e5391e89e77a2c/numpy/core/src/npymath/halffloat.c#L29\n * @param h {number} the uint16 to convert\n * @private\n * @ignore\n */\nexport function uint16ToFloat64(h: number) {\n let expo = (h & 0x7C00) >> 10;\n let sigf = (h & 0x03FF) / 1024;\n let sign = (-1) ** ((h & 0x8000) >> 15);\n switch (expo) {\n case 0x1F: return sign * (sigf ? NaN : 1 / 0);\n case 0x00: return sign * (sigf ? 6.103515625e-5 * sigf : 0);\n }\n return sign * (2 ** (expo - 15)) * (1 + sigf);\n}\n\n/**\n * Convert a float64 to uint16 (assuming the float64 is logically a float16). Inspired by numpy's `npy_double_to_half`:\n * https://github.com/numpy/numpy/blob/5a5987291dc95376bb098be8d8e5391e89e77a2c/numpy/core/src/npymath/halffloat.c#L43\n * @param d {number} The float64 to convert\n * @private\n * @ignore\n */\nexport function float64ToUint16(d: number) {\n\n if (d !== d) { return 0x7E00; } // NaN\n\n f64[0] = d;\n\n // Magic numbers:\n // 0x80000000 = 10000000 00000000 00000000 00000000 -- masks the 32nd bit\n // 0x7ff00000 = 01111111 11110000 00000000 00000000 -- masks the 21st-31st bits\n // 0x000fffff = 00000000 00001111 11111111 11111111 -- masks the 1st-20th bit\n\n let sign = (u32[1] & 0x80000000) >> 16 & 0xFFFF;\n let expo = (u32[1] & 0x7ff00000), sigf = 0x0000;\n\n if (expo >= 0x40f00000) {\n //\n // If exponent overflowed, the float16 is either NaN or Infinity.\n // Rules to propagate the sign bit: mantissa > 0 ? NaN : +/-Infinity\n //\n // Magic numbers:\n // 0x40F00000 = 01000000 11110000 00000000 00000000 -- 6-bit exponent overflow\n // 0x7C000000 = 01111100 00000000 00000000 00000000 -- masks the 27th-31st bits\n //\n // returns:\n // qNaN, aka 32256 decimal, 0x7E00 hex, or 01111110 00000000 binary\n // sNaN, aka 32000 decimal, 0x7D00 hex, or 01111101 00000000 binary\n // +inf, aka 31744 decimal, 0x7C00 hex, or 01111100 00000000 binary\n // -inf, aka 64512 decimal, 0xFC00 hex, or 11111100 00000000 binary\n //\n // If mantissa is greater than 23 bits, set to +Infinity like numpy\n if (u32[0] > 0) {\n expo = 0x7C00;\n } else {\n expo = (expo & 0x7C000000) >> 16;\n sigf = (u32[1] & 0x000fffff) >> 10;\n }\n } else if (expo <= 0x3f000000) {\n //\n // If exponent underflowed, the float is either signed zero or subnormal.\n //\n // Magic numbers:\n // 0x3F000000 = 00111111 00000000 00000000 00000000 -- 6-bit exponent underflow\n //\n sigf = 0x100000 + (u32[1] & 0x000fffff);\n sigf = 0x100000 + (sigf << ((expo >> 20) - 998)) >> 21;\n expo = 0;\n } else {\n //\n // No overflow or underflow, rebase the exponent and round the mantissa\n // Magic numbers:\n // 0x200 = 00000010 00000000 -- masks off the 10th bit\n //\n\n // Ensure the first mantissa bit (the 10th one) is 1 and round\n expo = (expo - 0x3f000000) >> 10;\n sigf = ((u32[1] & 0x000fffff) + 0x200) >> 10;\n }\n\n return sign | expo | sigf & 0xFFFF;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { float64ToUint16 } from '../util/math';\nimport { FixedWidthBuilder } from '../builder';\nimport { Float, Float16, Float32, Float64 } from '../type';\n\n/** @ignore */\nexport class FloatBuilder extends FixedWidthBuilder {}\n\n/** @ignore */\nexport class Float16Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n // convert JS float64 to a uint16\n this._values.set(index, float64ToUint16(value));\n }\n}\n\n/** @ignore */\nexport class Float32Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Float64Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n this._values.set(index, value);\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { ArrayBufferViewInput, toArrayBufferView } from './buffer';\nimport { TypedArray, TypedArrayConstructor } from '../interfaces';\nimport { BigIntArray, BigIntArrayConstructor } from '../interfaces';\nimport { BigIntAvailable, BigInt64Array, BigUint64Array } from './compat';\n\n/** @ignore */\nexport const isArrowBigNumSymbol = Symbol.for('isArrowBigNum');\n\n/** @ignore */ type BigNumArray = IntArray | UintArray;\n/** @ignore */ type IntArray = Int8Array | Int16Array | Int32Array;\n/** @ignore */ type UintArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray;\n\n/** @ignore */\nfunction BigNum(this: any, x: any, ...xs: any) {\n if (xs.length === 0) {\n return Object.setPrototypeOf(toArrayBufferView(this['TypedArray'], x), this.constructor.prototype);\n }\n return Object.setPrototypeOf(new this['TypedArray'](x, ...xs), this.constructor.prototype);\n}\n\nBigNum.prototype[isArrowBigNumSymbol] = true;\nBigNum.prototype.toJSON = function>(this: T) { return `\"${bignumToString(this)}\"`; };\nBigNum.prototype.valueOf = function>(this: T) { return bignumToNumber(this); };\nBigNum.prototype.toString = function>(this: T) { return bignumToString(this); };\nBigNum.prototype[Symbol.toPrimitive] = function>(this: T, hint: 'string' | 'number' | 'default' = 'default') {\n switch (hint) {\n case 'number': return bignumToNumber(this);\n case 'string': return bignumToString(this);\n case 'default': return bignumToBigInt(this);\n }\n return bignumToString(this);\n};\n\n/** @ignore */\ntype TypedArrayConstructorArgs =\n [number | void] |\n [Iterable | Iterable] |\n [ArrayBufferLike, number | void, number | void] ;\n\n/** @ignore */\nfunction SignedBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction UnsignedBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction DecimalBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n\nObject.setPrototypeOf(SignedBigNum.prototype, Object.create(Int32Array.prototype));\nObject.setPrototypeOf(UnsignedBigNum.prototype, Object.create(Uint32Array.prototype));\nObject.setPrototypeOf(DecimalBigNum.prototype, Object.create(Uint32Array.prototype));\nObject.assign(SignedBigNum.prototype, BigNum.prototype, { 'constructor': SignedBigNum, 'signed': true, 'TypedArray': Int32Array, 'BigIntArray': BigInt64Array });\nObject.assign(UnsignedBigNum.prototype, BigNum.prototype, { 'constructor': UnsignedBigNum, 'signed': false, 'TypedArray': Uint32Array, 'BigIntArray': BigUint64Array });\nObject.assign(DecimalBigNum.prototype, BigNum.prototype, { 'constructor': DecimalBigNum, 'signed': true, 'TypedArray': Uint32Array, 'BigIntArray': BigUint64Array });\n\n/** @ignore */\nfunction bignumToNumber>(bn: T) {\n let { buffer, byteOffset, length, 'signed': signed } = bn;\n let words = new Int32Array(buffer, byteOffset, length);\n let number = 0, i = 0, n = words.length, hi, lo;\n while (i < n) {\n lo = words[i++];\n hi = words[i++];\n signed || (hi = hi >>> 0);\n number += (lo >>> 0) + (hi * (i ** 32));\n }\n return number;\n}\n\n/** @ignore */\nexport let bignumToString: { >(a: T): string; };\n/** @ignore */\nexport let bignumToBigInt: { >(a: T): bigint; };\n\nif (!BigIntAvailable) {\n bignumToString = decimalToString;\n bignumToBigInt = bignumToString;\n} else {\n bignumToBigInt = (>(a: T) => a.byteLength === 8 ? new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0] : decimalToString(a));\n bignumToString = (>(a: T) => a.byteLength === 8 ? `${new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0]}` : decimalToString(a));\n}\n\n/** @ignore */\nfunction decimalToString>(a: T) {\n let digits = '';\n let base64 = new Uint32Array(2);\n let base32 = new Uint16Array(a.buffer, a.byteOffset, a.byteLength / 2);\n let checks = new Uint32Array((base32 = new Uint16Array(base32).reverse()).buffer);\n let i = -1, n = base32.length - 1;\n do {\n for (base64[0] = base32[i = 0]; i < n;) {\n base32[i++] = base64[1] = base64[0] / 10;\n base64[0] = ((base64[0] - base64[1] * 10) << 16) + base32[i];\n }\n base32[i] = base64[1] = base64[0] / 10;\n base64[0] = base64[0] - base64[1] * 10;\n digits = `${base64[0]}${digits}`;\n } while (checks[0] || checks[1] || checks[2] || checks[3]);\n return digits ? digits : `0`;\n}\n\n/** @ignore */\nexport class BN {\n /** @nocollapse */\n public static new(num: T, isSigned?: boolean): (T & BN) {\n switch (isSigned) {\n case true: return new ( SignedBigNum)(num) as (T & BN);\n case false: return new ( UnsignedBigNum)(num) as (T & BN);\n }\n switch (num.constructor) {\n case Int8Array:\n case Int16Array:\n case Int32Array:\n case BigInt64Array:\n return new ( SignedBigNum)(num) as (T & BN);\n }\n if (num.byteLength === 16) {\n return new ( DecimalBigNum)(num) as (T & BN);\n }\n return new ( UnsignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static signed(num: T): (T & BN) {\n return new ( SignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static unsigned(num: T): (T & BN) {\n return new ( UnsignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static decimal(num: T): (T & BN) {\n return new ( DecimalBigNum)(num) as (T & BN);\n }\n constructor(num: T, isSigned?: boolean) {\n return BN.new(num, isSigned) as any;\n }\n}\n\n/** @ignore */\nexport interface BN extends TypedArrayLike {\n\n new(buffer: T, signed?: boolean): T;\n\n readonly signed: boolean;\n readonly TypedArray: TypedArrayConstructor;\n readonly BigIntArray: BigIntArrayConstructor;\n\n [Symbol.toStringTag]:\n 'Int8Array' |\n 'Int16Array' |\n 'Int32Array' |\n 'Uint8Array' |\n 'Uint16Array' |\n 'Uint32Array' |\n 'Uint8ClampedArray';\n\n /**\n * Convert the bytes to their (positive) decimal representation for printing\n */\n toString(): string;\n /**\n * Down-convert the bytes to a 53-bit precision integer. Invoked by JS for\n * arithmetic operators, like `+`. Easy (and unsafe) way to convert BN to\n * number via `+bn_inst`\n */\n valueOf(): number;\n /**\n * Return the JSON representation of the bytes. Must be wrapped in double-quotes,\n * so it's compatible with JSON.stringify().\n */\n toJSON(): string;\n [Symbol.toPrimitive](hint?: any): number | string | bigint;\n}\n\n/** @ignore */\ninterface TypedArrayLike {\n\n readonly length: number;\n readonly buffer: ArrayBuffer;\n readonly byteLength: number;\n readonly byteOffset: number;\n readonly BYTES_PER_ELEMENT: number;\n\n includes(searchElement: number, fromIndex?: number | undefined): boolean;\n copyWithin(target: number, start: number, end?: number | undefined): this;\n every(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): boolean;\n fill(value: number, start?: number | undefined, end?: number | undefined): this;\n filter(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): T;\n find(predicate: (value: number, index: number, obj: T) => boolean, thisArg?: any): number | undefined;\n findIndex(predicate: (value: number, index: number, obj: T) => boolean, thisArg?: any): number;\n forEach(callbackfn: (value: number, index: number, array: T) => void, thisArg?: any): void;\n indexOf(searchElement: number, fromIndex?: number | undefined): number;\n join(separator?: string | undefined): string;\n lastIndexOf(searchElement: number, fromIndex?: number | undefined): number;\n map(callbackfn: (value: number, index: number, array: T) => number, thisArg?: any): T;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number, initialValue: number): number;\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: T) => U, initialValue: U): U;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number, initialValue: number): number;\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: T) => U, initialValue: U): U;\n reverse(): T;\n set(array: ArrayLike, offset?: number | undefined): void;\n slice(start?: number | undefined, end?: number | undefined): T;\n some(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): boolean;\n sort(compareFn?: ((a: number, b: number) => number) | undefined): this;\n subarray(begin: number, end?: number | undefined): T;\n toLocaleString(): string;\n entries(): IterableIterator<[number, number]>;\n keys(): IterableIterator;\n values(): IterableIterator;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { bignumToBigInt } from '../util/bn';\nimport { WideBufferBuilder } from './buffer';\nimport { BigInt64Array } from '../util/compat';\nimport { FixedWidthBuilder, BuilderOptions } from '../builder';\nimport { Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64 } from '../type';\n\n/** @ignore */\nexport class IntBuilder extends FixedWidthBuilder {\n public setValue(index: number, value: T['TValue']) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Int8Builder extends IntBuilder {}\n/** @ignore */\nexport class Int16Builder extends IntBuilder {}\n/** @ignore */\nexport class Int32Builder extends IntBuilder {}\n/** @ignore */\nexport class Int64Builder extends IntBuilder {\n protected _values: WideBufferBuilder;\n constructor(options: BuilderOptions) {\n if (options['nullValues']) {\n options['nullValues'] = (options['nullValues'] as TNull[]).map(toBigInt);\n }\n super(options);\n this._values = new WideBufferBuilder(new Int32Array(0), 2);\n }\n public get values64() { return this._values.buffer64; }\n public isValid(value: Int32Array | bigint | TNull) { return super.isValid(toBigInt(value)); }\n}\n\n/** @ignore */\nexport class Uint8Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint16Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint32Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint64Builder extends IntBuilder {\n protected _values: WideBufferBuilder;\n constructor(options: BuilderOptions) {\n if (options['nullValues']) {\n options['nullValues'] = (options['nullValues'] as TNull[]).map(toBigInt);\n }\n super(options);\n this._values = new WideBufferBuilder(new Uint32Array(0), 2);\n }\n public get values64() { return this._values.buffer64; }\n public isValid(value: Uint32Array | bigint | TNull) { return super.isValid(toBigInt(value)); }\n}\n\nconst toBigInt = ((memo: any) => (value: any) => {\n if (ArrayBuffer.isView(value)) {\n memo.buffer = value.buffer;\n memo.byteOffset = value.byteOffset;\n memo.byteLength = value.byteLength;\n value = bignumToBigInt(memo);\n memo.buffer = null;\n }\n return value;\n})({ 'BigIntArray': BigInt64Array });\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond } from '../type';\n\n/** @ignore */\nexport class TimeBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class TimeSecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeMillisecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeMicrosecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeNanosecondBuilder extends TimeBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond } from '../type';\n\n/** @ignore */\nexport class TimestampBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class TimestampSecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampMillisecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampMicrosecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampNanosecondBuilder extends TimestampBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Interval, IntervalDayTime, IntervalYearMonth } from '../type';\n\n/** @ignore */\nexport class IntervalBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class IntervalDayTimeBuilder extends IntervalBuilder {}\n/** @ignore */\nexport class IntervalYearMonthBuilder extends IntervalBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Binary } from '../type';\nimport { toUint8Array } from '../util/buffer';\nimport { BufferBuilder } from './buffer';\nimport { VariableWidthBuilder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class BinaryBuilder extends VariableWidthBuilder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new BufferBuilder(new Uint8Array(0));\n }\n public get byteLength(): number {\n let size = this._pendingLength + (this.length * 4);\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n return size;\n }\n public setValue(index: number, value: Uint8Array) {\n return super.setValue(index, toUint8Array(value));\n }\n protected _flushPending(pending: Map, pendingLength: number) {\n const offsets = this._offsets;\n const data = this._values.reserve(pendingLength).buffer;\n let index = 0, length = 0, offset = 0, value: Uint8Array | undefined;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n length = value.length;\n data.set(value, offset);\n offsets.set(index, length);\n offset += length;\n }\n }\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Utf8 } from '../type';\nimport { encodeUtf8 } from '../util/utf8';\nimport { BinaryBuilder } from './binary';\nimport { BufferBuilder } from './buffer';\nimport { VariableWidthBuilder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class Utf8Builder extends VariableWidthBuilder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new BufferBuilder(new Uint8Array(0));\n }\n public get byteLength(): number {\n let size = this._pendingLength + (this.length * 4);\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n return size;\n }\n public setValue(index: number, value: string) {\n return super.setValue(index, encodeUtf8(value) as any);\n }\n // @ts-ignore\n protected _flushPending(pending: Map, pendingLength: number): void {}\n}\n\n(Utf8Builder.prototype as any)._flushPending = (BinaryBuilder.prototype as any)._flushPending;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\n\n/** @ignore */\nexport class Run {\n // @ts-ignore\n protected _values: ArrayLike;\n public get length() { return this._values.length; }\n public get(index: number) { return this._values[index]; }\n public clear() { this._values = null; return this; }\n public bind(values: Vector | ArrayLike) {\n if (values instanceof Vector) {\n return values;\n }\n this._values = values;\n return this as any;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { StructVector } from './struct';\nimport { valueToString } from '../util/pretty';\nimport { DataType, Struct, RowLike } from '../type';\n\n/** @ignore */ const kParent = Symbol.for('parent');\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */ const kKeyToIdx = Symbol.for('keyToIdx');\n/** @ignore */ const kIdxToVal = Symbol.for('idxToVal');\n/** @ignore */ const kCustomInspect = Symbol.for('nodejs.util.inspect.custom');\n\nabstract class Row implements Map {\n\n public readonly size: number;\n public readonly [Symbol.toStringTag]: string;\n\n protected [kRowIndex]: number;\n protected [kParent]: Vector;\n protected [kKeyToIdx]: Map;\n protected [kIdxToVal]: V[];\n\n constructor(parent: Vector, numKeys: number) {\n this[kParent] = parent;\n this.size = numKeys;\n }\n\n public abstract keys(): IterableIterator;\n public abstract values(): IterableIterator;\n public abstract getKey(idx: number): K;\n public abstract getIndex(key: K): number;\n public abstract getValue(idx: number): V;\n public abstract setValue(idx: number, val: V): void;\n\n public entries() { return this[Symbol.iterator](); }\n\n public has(key: K) { return this.get(key) !== undefined; }\n\n public get(key: K) {\n let val = undefined;\n if (key !== null && key !== undefined) {\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n let idx = ktoi.get(key);\n if (idx !== undefined) {\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n } else if ((idx = this.getIndex(key)) > -1) {\n ktoi.set(key, idx);\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n }\n }\n return val;\n }\n\n public set(key: K, val: V) {\n if (key !== null && key !== undefined) {\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n let idx = ktoi.get(key);\n if (idx === undefined) {\n ktoi.set(key, idx = this.getIndex(key));\n }\n if (idx > -1) {\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n itov[idx] = this.setValue(idx, val);\n }\n }\n return this;\n }\n\n public clear(): void { throw new Error(`Clearing ${this[Symbol.toStringTag]} not supported.`); }\n\n public delete(_: K): boolean { throw new Error(`Deleting ${this[Symbol.toStringTag]} values not supported.`); }\n\n public *[Symbol.iterator](): IterableIterator<[K, V]> {\n\n const ki = this.keys();\n const vi = this.values();\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n\n for (let k: K, v: V, i = 0, kr: IteratorResult, vr: IteratorResult;\n !((kr = ki.next()).done || (vr = vi.next()).done);\n ++i\n ) {\n k = kr.value;\n v = vr.value;\n itov[i] = v;\n ktoi.has(k) || ktoi.set(k, i);\n yield [k, v];\n }\n }\n\n public forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void {\n\n const ki = this.keys();\n const vi = this.values();\n const callback = thisArg === undefined ? callbackfn :\n (v: V, k: K, m: Map) => callbackfn.call(thisArg, v, k, m);\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n\n for (let k: K, v: V, i = 0, kr: IteratorResult, vr: IteratorResult;\n !((kr = ki.next()).done || (vr = vi.next()).done);\n ++i\n ) {\n k = kr.value;\n v = vr.value;\n itov[i] = v;\n ktoi.has(k) || ktoi.set(k, i);\n callback(v, k, this);\n }\n }\n\n public toArray() { return [...this.values()]; }\n public toJSON() {\n const obj = {} as any;\n this.forEach((val, key) => obj[key] = val);\n return obj;\n }\n\n public inspect() { return this.toString(); }\n public [kCustomInspect]() { return this.toString(); }\n public toString() {\n const str: string[] = [];\n this.forEach((val, key) => {\n key = valueToString(key);\n val = valueToString(val);\n str.push(`${key}: ${val}`);\n });\n return `{ ${str.join(', ')} }`;\n }\n\n protected static [Symbol.toStringTag] = ((proto: Row) => {\n Object.defineProperties(proto, {\n 'size': { writable: true, enumerable: false, configurable: false, value: 0 },\n [kParent]: { writable: true, enumerable: false, configurable: false, value: null },\n [kRowIndex]: { writable: true, enumerable: false, configurable: false, value: -1 },\n });\n return (proto as any)[Symbol.toStringTag] = 'Row';\n })(Row.prototype);\n}\n\nexport class MapRow extends Row {\n constructor(slice: Vector>) {\n super(slice, slice.length);\n return createRowProxy(this);\n }\n public keys() {\n return this[kParent].getChildAt(0)![Symbol.iterator]();\n }\n public values() {\n return this[kParent].getChildAt(1)![Symbol.iterator]();\n }\n public getKey(idx: number): K['TValue'] {\n return this[kParent].getChildAt(0)!.get(idx);\n }\n public getIndex(key: K['TValue']): number {\n return this[kParent].getChildAt(0)!.indexOf(key);\n }\n public getValue(index: number): V['TValue'] | null {\n return this[kParent].getChildAt(1)!.get(index);\n }\n public setValue(index: number, value: V['TValue'] | null): void {\n this[kParent].getChildAt(1)!.set(index, value);\n }\n}\n\nexport class StructRow extends Row {\n constructor(parent: StructVector) {\n super(parent, parent.type.children.length);\n return defineRowProxyProperties(this);\n }\n public *keys() {\n for (const field of this[kParent].type.children) {\n yield field.name as keyof T;\n }\n }\n public *values() {\n for (const field of this[kParent].type.children) {\n yield (this as RowLike)[field.name];\n }\n }\n public getKey(idx: number): keyof T {\n return this[kParent].type.children[idx].name as keyof T;\n }\n public getIndex(key: keyof T): number {\n return this[kParent].type.children.findIndex((f) => f.name === key);\n }\n public getValue(index: number): T[keyof T]['TValue'] | null {\n return this[kParent].getChildAt(index)!.get(this[kRowIndex]);\n }\n public setValue(index: number, value: T[keyof T]['TValue'] | null): void {\n return this[kParent].getChildAt(index)!.set(this[kRowIndex], value);\n }\n}\n\nObject.setPrototypeOf(Row.prototype, Map.prototype);\n\n/** @ignore */\nconst defineRowProxyProperties = (() => {\n const desc = { enumerable: true, configurable: false, get: null as any, set: null as any };\n return (row: T) => {\n let idx = -1, ktoi = row[kKeyToIdx] || (row[kKeyToIdx] = new Map());\n const getter = (key: any) => function(this: T) { return this.get(key); };\n const setter = (key: any) => function(this: T, val: any) { return this.set(key, val); };\n for (const key of row.keys()) {\n ktoi.set(key, ++idx);\n desc.get = getter(key);\n desc.set = setter(key);\n row.hasOwnProperty(key) || (desc.enumerable = true, Object.defineProperty(row, key, desc));\n row.hasOwnProperty(idx) || (desc.enumerable = false, Object.defineProperty(row, idx, desc));\n }\n desc.get = desc.set = null;\n return row;\n };\n})();\n\n/** @ignore */\nconst createRowProxy = (() => {\n if (typeof Proxy === 'undefined') {\n return defineRowProxyProperties;\n }\n const has = Row.prototype.has;\n const get = Row.prototype.get;\n const set = Row.prototype.set;\n const getKey = Row.prototype.getKey;\n const RowProxyHandler: ProxyHandler = {\n isExtensible() { return false; },\n deleteProperty() { return false; },\n preventExtensions() { return true; },\n ownKeys(row: Row) { return [...row.keys()].map((x) => `${x}`); },\n has(row: Row, key: PropertyKey) {\n switch (key) {\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: case kCustomInspect:\n return true;\n }\n if (typeof key === 'number' && !row.has(key)) {\n key = row.getKey(key);\n }\n return row.has(key);\n },\n get(row: Row, key: PropertyKey, receiver: any) {\n switch (key) {\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: case kCustomInspect:\n return Reflect.get(row, key, receiver);\n }\n if (typeof key === 'number' && !has.call(receiver, key)) {\n key = getKey.call(receiver, key);\n }\n return get.call(receiver, key);\n },\n set(row: Row, key: PropertyKey, val: any, receiver: any) {\n switch (key) {\n case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx:\n return Reflect.set(row, key, val, receiver);\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag:\n return false;\n }\n if (typeof key === 'number' && !has.call(receiver, key)) {\n key = getKey.call(receiver, key);\n }\n return has.call(receiver, key) ? !!set.call(receiver, key, val) : false;\n },\n };\n return (row: T) => new Proxy(row, RowProxyHandler) as T;\n})();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { MapRow, StructRow } from '../vector/row';\nimport { compareArrayLike } from '../util/buffer';\nimport { BigInt, BigIntAvailable } from './compat';\n\n/** @ignore */\ntype RangeLike = { length: number; stride?: number };\n/** @ignore */\ntype ClampThen = (source: T, index: number) => any;\n/** @ignore */\ntype ClampRangeThen = (source: T, offset: number, length: number) => any;\n\nexport function clampIndex(source: T, index: number): number;\nexport function clampIndex = ClampThen>(source: T, index: number, then: N): ReturnType;\n/** @ignore */\nexport function clampIndex = ClampThen>(source: T, index: number, then?: N) {\n const length = source.length;\n const adjust = index > -1 ? index : (length + (index % length));\n return then ? then(source, adjust) : adjust;\n}\n\n/** @ignore */\nlet tmp: number;\nexport function clampRange(source: T, begin: number | undefined, end: number | undefined): [number, number];\nexport function clampRange = ClampRangeThen>(source: T, begin: number | undefined, end: number | undefined, then: N): ReturnType;\n/** @ignore */\nexport function clampRange = ClampRangeThen>(source: T, begin: number | undefined, end: number | undefined, then?: N) {\n\n // Adjust args similar to Array.prototype.slice. Normalize begin/end to\n // clamp between 0 and length, and wrap around on negative indices, e.g.\n // slice(-1, 5) or slice(5, -1)\n let { length: len = 0 } = source;\n let lhs = typeof begin !== 'number' ? 0 : begin;\n let rhs = typeof end !== 'number' ? len : end;\n // wrap around on negative start/end positions\n (lhs < 0) && (lhs = ((lhs % len) + len) % len);\n (rhs < 0) && (rhs = ((rhs % len) + len) % len);\n // ensure lhs <= rhs\n (rhs < lhs) && (tmp = lhs, lhs = rhs, rhs = tmp);\n // ensure rhs <= length\n (rhs > len) && (rhs = len);\n\n return then ? then(source, lhs, rhs) : [lhs, rhs];\n}\n\nconst big0 = BigIntAvailable ? BigInt(0) : 0;\nconst isNaNFast = (value: any) => value !== value;\n\n/** @ignore */\nexport function createElementComparator(search: any) {\n let typeofSearch = typeof search;\n // Compare primitives\n if (typeofSearch !== 'object' || search === null) {\n // Compare NaN\n if (isNaNFast(search)) {\n return isNaNFast;\n }\n return typeofSearch !== 'bigint'\n ? (value: any) => value === search\n : (value: any) => (big0 + value) === search;\n }\n // Compare Dates\n if (search instanceof Date) {\n const valueOfSearch = search.valueOf();\n return (value: any) => value instanceof Date ? (value.valueOf() === valueOfSearch) : false;\n }\n // Compare TypedArrays\n if (ArrayBuffer.isView(search)) {\n return (value: any) => value ? compareArrayLike(search, value) : false;\n }\n // Compare Maps and Rows\n if (search instanceof Map) { return creatMapComparator(search); }\n // Compare Array-likes\n if (Array.isArray(search)) { return createArrayLikeComparator(search); }\n // Compare Vectors\n if (search instanceof Vector) { return createVectorComparator(search); }\n // Compare non-empty Objects\n return createObjectComparator(search);\n}\n\n/** @ignore */\nfunction createArrayLikeComparator(lhs: ArrayLike) {\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[i]);\n }\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction creatMapComparator(lhs: Map) {\n let i = -1;\n const comparators = [] as ((x: any) => boolean)[];\n lhs.forEach((v) => comparators[++i] = createElementComparator(v));\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createVectorComparator(lhs: Vector) {\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs.get(i));\n }\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createObjectComparator(lhs: any) {\n const keys = Object.keys(lhs);\n // Only compare non-empty Objects\n if (keys.length === 0) { return () => false; }\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = keys.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[keys[i]]);\n }\n return createSubElementsComparator(comparators, keys);\n}\n\nfunction createSubElementsComparator(comparators: ((x: any) => boolean)[], keys?: Iterable) {\n return (rhs: any) => {\n if (!rhs || typeof rhs !== 'object') {\n return false;\n }\n switch (rhs.constructor) {\n case Array: return compareArray(comparators, rhs);\n case Map:\n case MapRow:\n case StructRow:\n return compareObject(comparators, rhs, rhs.keys());\n case Object:\n case undefined: // support `Object.create(null)` objects\n return compareObject(comparators, rhs, keys || Object.keys(rhs));\n }\n return rhs instanceof Vector ? compareVector(comparators, rhs) : false;\n };\n}\n\nfunction compareArray(comparators: ((x: any) => boolean)[], arr: any[]) {\n const n = comparators.length;\n if (arr.length !== n) { return false; }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](arr[i]))) { return false; }\n }\n return true;\n}\n\nfunction compareVector(comparators: ((x: any) => boolean)[], vec: Vector) {\n const n = comparators.length;\n if (vec.length !== n) { return false; }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](vec.get(i)))) { return false; }\n }\n return true;\n}\n\nfunction compareObject(comparators: ((x: any) => boolean)[], obj: Map, keys: Iterable) {\n\n const lKeyItr = keys[Symbol.iterator]();\n const rKeyItr = obj instanceof Map ? obj.keys() : Object.keys(obj)[Symbol.iterator]();\n const rValItr = obj instanceof Map ? obj.values() : Object.values(obj)[Symbol.iterator]();\n\n let i = 0;\n let n = comparators.length;\n let rVal = rValItr.next();\n let lKey = lKeyItr.next();\n let rKey = rKeyItr.next();\n\n for (; i < n && !lKey.done && !rKey.done && !rVal.done;\n ++i, lKey = lKeyItr.next(), rKey = rKeyItr.next(), rVal = rValItr.next()) {\n if (lKey.value !== rKey.value || !comparators[i](rVal.value)) {\n break;\n }\n }\n if (i === n && lKey.done && rKey.done && rVal.done) {\n return true;\n }\n lKeyItr.return && lKeyItr.return();\n rKeyItr.return && rKeyItr.return();\n rValItr.return && rValItr.return();\n return false;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { clampRange } from '../util/vector';\nimport { DataType, Dictionary } from '../type';\nimport { selectChunkArgs } from '../util/args';\nimport { DictionaryVector } from './dictionary';\nimport { AbstractVector, Vector } from '../vector';\nimport { Clonable, Sliceable, Applicative } from '../vector';\n\n/** @ignore */\ntype ChunkedDict = T extends Dictionary ? Vector : null | never;\n/** @ignore */\ntype ChunkedKeys = T extends Dictionary ? Vector | Chunked : null | never;\n\n/** @ignore */\nexport type SearchContinuation = (column: T, chunkIndex: number, valueIndex: number) => any;\n\n/** @ignore */\nexport class Chunked\n extends AbstractVector\n implements Clonable>,\n Sliceable>,\n Applicative> {\n\n /** @nocollapse */\n public static flatten(...vectors: (Vector | Vector[])[]) {\n return selectChunkArgs>(Vector, vectors);\n }\n\n /** @nocollapse */\n public static concat(...vectors: (Vector | Vector[])[]) {\n const chunks = Chunked.flatten(...vectors);\n return new Chunked(chunks[0].type, chunks);\n }\n\n protected _type: T;\n protected _length: number;\n protected _chunks: Vector[];\n protected _numChildren: number;\n protected _children?: Chunked[];\n protected _nullCount: number = -1;\n protected _chunkOffsets: Uint32Array;\n\n constructor(type: T, chunks: Vector[] = [], offsets = calculateOffsets(chunks)) {\n super();\n this._type = type;\n this._chunks = chunks;\n this._chunkOffsets = offsets;\n this._length = offsets[offsets.length - 1];\n this._numChildren = (this._type.children || []).length;\n }\n\n public get type() { return this._type; }\n public get length() { return this._length; }\n public get chunks() { return this._chunks; }\n public get typeId(): T['TType'] { return this._type.typeId; }\n public get VectorName() { return `Chunked<${this._type}>`; }\n public get data(): Data {\n return this._chunks[0] ? this._chunks[0].data : null;\n }\n\n public get ArrayType() { return this._type.ArrayType; }\n public get numChildren() { return this._numChildren; }\n public get stride() { return this._chunks[0] ? this._chunks[0].stride : 1; }\n public get byteLength(): number {\n return this._chunks.reduce((byteLength, chunk) => byteLength + chunk.byteLength, 0);\n }\n public get nullCount() {\n let nullCount = this._nullCount;\n if (nullCount < 0) {\n this._nullCount = nullCount = this._chunks.reduce((x, { nullCount }) => x + nullCount, 0);\n }\n return nullCount;\n }\n\n protected _indices?: ChunkedKeys;\n public get indices(): ChunkedKeys | null {\n if (DataType.isDictionary(this._type)) {\n if (!this._indices) {\n const chunks = ( this._chunks) as DictionaryVector[];\n this._indices = (chunks.length === 1\n ? chunks[0].indices\n : Chunked.concat(...chunks.map((x) => x.indices))) as ChunkedKeys;\n }\n return this._indices;\n }\n return null;\n }\n public get dictionary(): ChunkedDict | null {\n if (DataType.isDictionary(this._type)) {\n return this._chunks[this._chunks.length - 1].data.dictionary as ChunkedDict;\n }\n return null;\n }\n\n public *[Symbol.iterator](): IterableIterator {\n for (const chunk of this._chunks) {\n yield* chunk;\n }\n }\n\n public clone(chunks = this._chunks): Chunked {\n return new Chunked(this._type, chunks);\n }\n\n public concat(...others: Vector[]): Chunked {\n return this.clone(Chunked.flatten(this, ...others));\n }\n\n public slice(begin?: number, end?: number): Chunked {\n return clampRange(this, begin, end, this._sliceInternal);\n }\n\n public getChildAt(index: number): Chunked | null {\n\n if (index < 0 || index >= this._numChildren) { return null; }\n\n let columns = this._children || (this._children = []);\n let child: Chunked, field: Field, chunks: Vector[];\n\n if (child = columns[index]) { return child; }\n if (field = ((this._type.children || [])[index] as Field)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Chunked(field.type, chunks));\n }\n }\n\n return null;\n }\n\n public search(index: number): [number, number] | null;\n public search>>(index: number, then?: N): ReturnType;\n public search>>(index: number, then?: N) {\n let idx = index;\n // binary search to find the child vector and value indices\n let offsets = this._chunkOffsets, rhs = offsets.length - 1;\n // return early if out of bounds, or if there's just one child\n if (idx < 0 ) { return null; }\n if (idx >= offsets[rhs]) { return null; }\n if (rhs <= 1 ) { return then ? then(this, 0, idx) : [0, idx]; }\n let lhs = 0, pos = 0, mid = 0;\n do {\n if (lhs + 1 === rhs) {\n return then ? then(this, lhs, idx - pos) : [lhs, idx - pos];\n }\n mid = lhs + ((rhs - lhs) / 2) | 0;\n idx >= offsets[mid] ? (lhs = mid) : (rhs = mid);\n } while (idx < offsets[rhs] && idx >= (pos = offsets[lhs]));\n return null;\n }\n\n public isValid(index: number): boolean {\n return !!this.search(index, this.isValidInternal);\n }\n\n public get(index: number): T['TValue'] | null {\n return this.search(index, this.getInternal);\n }\n\n public set(index: number, value: T['TValue'] | null): void {\n this.search(index, ({ chunks }, i, j) => chunks[i].set(j, value));\n }\n\n public indexOf(element: T['TValue'], offset?: number): number {\n if (offset && typeof offset === 'number') {\n return this.search(offset, (self, i, j) => this.indexOfInternal(self, i, j, element))!;\n }\n return this.indexOfInternal(this, 0, Math.max(0, offset || 0), element);\n }\n\n public toArray(): T['TArray'] {\n const { chunks } = this;\n const n = chunks.length;\n let ArrayType: any = this._type.ArrayType;\n if (n <= 0) { return new ArrayType(0); }\n if (n <= 1) { return chunks[0].toArray(); }\n let len = 0, src = new Array(n);\n for (let i = -1; ++i < n;) {\n len += (src[i] = chunks[i].toArray()).length;\n }\n if (ArrayType !== src[0].constructor) {\n ArrayType = src[0].constructor;\n }\n let dst = new ArrayType(len);\n let set: any = ArrayType === Array ? arraySet : typedSet;\n for (let i = -1, idx = 0; ++i < n;) {\n idx = set(src[i], dst, idx);\n }\n return dst;\n }\n\n protected getInternal({ _chunks }: Chunked, i: number, j: number) { return _chunks[i].get(j); }\n protected isValidInternal({ _chunks }: Chunked, i: number, j: number) { return _chunks[i].isValid(j); }\n protected indexOfInternal({ _chunks }: Chunked, chunkIndex: number, fromIndex: number, element: T['TValue']) {\n let i = chunkIndex - 1, n = _chunks.length;\n let start = fromIndex, offset = 0, found = -1;\n while (++i < n) {\n if (~(found = _chunks[i].indexOf(element, start))) {\n return offset + found;\n }\n start = 0;\n offset += _chunks[i].length;\n }\n return -1;\n }\n\n protected _sliceInternal(self: Chunked, begin: number, end: number) {\n const slices: Vector[] = [];\n const { chunks, _chunkOffsets: chunkOffsets } = self;\n for (let i = -1, n = chunks.length; ++i < n;) {\n const chunk = chunks[i];\n const chunkLength = chunk.length;\n const chunkOffset = chunkOffsets[i];\n // If the child is to the right of the slice boundary, we can stop\n if (chunkOffset >= end) { break; }\n // If the child is to the left of of the slice boundary, exclude\n if (begin >= chunkOffset + chunkLength) { continue; }\n // If the child is between both left and right boundaries, include w/o slicing\n if (chunkOffset >= begin && (chunkOffset + chunkLength) <= end) {\n slices.push(chunk);\n continue;\n }\n // If the child overlaps one of the slice boundaries, include that slice\n const from = Math.max(0, begin - chunkOffset);\n const to = Math.min(end - chunkOffset, chunkLength);\n slices.push(chunk.slice(from, to) as Vector);\n }\n return self.clone(slices);\n }\n}\n\n/** @ignore */\nfunction calculateOffsets(vectors: Vector[]) {\n let offsets = new Uint32Array((vectors || []).length + 1);\n let offset = offsets[0] = 0, length = offsets.length;\n for (let index = 0; ++index < length;) {\n offsets[index] = (offset += vectors[index - 1].length);\n }\n return offsets;\n}\n\n/** @ignore */\nconst typedSet = (src: TypedArray, dst: TypedArray, offset: number) => {\n dst.set(src, offset);\n return (offset + src.length);\n};\n\n/** @ignore */\nconst arraySet = (src: any[], dst: any[], offset: number) => {\n let idx = offset;\n for (let i = -1, n = src.length; ++i < n;) {\n dst[idx++] = src[i];\n }\n return idx;\n};\n\n/** @ignore */\ninterface TypedArray extends ArrayBufferView {\n readonly length: number;\n readonly [n: number]: number;\n set(array: ArrayLike, offset?: number): void;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Field } from './schema';\nimport { DataType } from './type';\nimport { Vector } from './vector';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { VectorCtorArgs, VectorType as V } from './interfaces';\nimport { Chunked, SearchContinuation } from './vector/chunked';\n\nexport interface Column {\n typeId: T['TType'];\n concat(...others: Vector[]): Column;\n slice(begin?: number, end?: number): Column;\n clone(chunks?: Vector[], offsets?: Uint32Array): Column;\n}\n\nexport class Column\n extends Chunked\n implements Clonable>,\n Sliceable>,\n Applicative> {\n\n public static new(field: string | Field, ...chunks: (Vector | Vector[])[]): Column;\n public static new(field: string | Field, data: Data, ...args: VectorCtorArgs>): Column;\n /** @nocollapse */\n public static new(field: string | Field, data: Data | Vector | (Data | Vector)[], ...rest: any[]) {\n\n const chunks = Chunked.flatten(\n Array.isArray(data) ? [...data, ...rest] :\n data instanceof Vector ? [data, ...rest] :\n [Vector.new(data, ...rest)]\n );\n\n if (typeof field === 'string') {\n const type = chunks[0].data.type;\n field = new Field(field, type, true);\n } else if (!field.nullable && chunks.some(({ nullCount }) => nullCount > 0)) {\n field = field.clone({ nullable: true });\n }\n return new Column(field, chunks);\n }\n\n constructor(field: Field, vectors: Vector[] = [], offsets?: Uint32Array) {\n vectors = Chunked.flatten(...vectors);\n super(field.type, vectors, offsets);\n this._field = field;\n if (vectors.length === 1 && !(this instanceof SingleChunkColumn)) {\n return new SingleChunkColumn(field, vectors[0], this._chunkOffsets);\n }\n }\n\n protected _field: Field;\n protected _children?: Column[];\n\n public get field() { return this._field; }\n public get name() { return this._field.name; }\n public get nullable() { return this._field.nullable; }\n public get metadata() { return this._field.metadata; }\n\n public clone(chunks = this._chunks) {\n return new Column(this._field, chunks);\n }\n\n public getChildAt(index: number): Column | null {\n\n if (index < 0 || index >= this.numChildren) { return null; }\n\n let columns = this._children || (this._children = []);\n let column: Column, field: Field, chunks: Vector[];\n\n if (column = columns[index]) { return column; }\n if (field = ((this.type.children || [])[index] as Field)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column(field, chunks));\n }\n }\n\n return null;\n }\n}\n\n/** @ignore */\nclass SingleChunkColumn extends Column {\n protected _chunk: Vector;\n constructor(field: Field, vector: Vector, offsets?: Uint32Array) {\n super(field, [vector], offsets);\n this._chunk = vector;\n }\n public search(index: number): [number, number] | null;\n public search>>(index: number, then?: N): ReturnType;\n public search>>(index: number, then?: N) {\n return then ? then(this, 0, index) : [0, index];\n }\n public isValid(index: number): boolean {\n return this._chunk.isValid(index);\n }\n public get(index: number): T['TValue'] | null {\n return this._chunk.get(index);\n }\n public set(index: number, value: T['TValue'] | null): void {\n this._chunk.set(index, value);\n }\n public indexOf(element: T['TValue'], offset?: number): number {\n return this._chunk.indexOf(element, offset);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { Column } from '../column';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Chunked } from '../vector/chunked';\n\ntype RecordBatchCtor = typeof import('../recordbatch').RecordBatch;\n\nconst isArray = Array.isArray;\n\n/** @ignore */\nexport const selectArgs = (Ctor: any, vals: any[]) => _selectArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnArgs = (args: any[]) => {\n const [fields, values] = _selectFieldArgs(args, [[], []]);\n return values.map((x, i) =>\n x instanceof Column ? Column.new(x.field.clone(fields[i]), x) :\n x instanceof Vector ? Column.new(fields[i], x) as Column :\n Column.new(fields[i], [] as Vector[]));\n};\n\n/** @ignore */\nexport const selectFieldArgs = (args: any[]) => _selectFieldArgs(args, [[], []]);\n/** @ignore */\nexport const selectChunkArgs = (Ctor: any, vals: any[]) => _selectChunkArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectVectorChildrenArgs = (Ctor: RecordBatchCtor, vals: any[]) => _selectVectorChildrenArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnChildrenArgs = (Ctor: RecordBatchCtor, vals: any[]) => _selectColumnChildrenArgs(Ctor, vals, [], 0) as T[];\n\n/** @ignore */\nfunction _selectArgs(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) { res[j++] = value; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectChunkArgs(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectChunkArgs(Ctor, value, res, j).length;\n } else if (value instanceof Chunked) {\n j = _selectChunkArgs(Ctor, value.chunks, res, j).length;\n } else if (value instanceof Ctor) { res[j++] = value; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectVectorChildrenArgs(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectVectorChildrenArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) {\n j = _selectArgs(Vector, value.schema.fields.map((_, i) => value.getChildAt(i)!), res, j).length;\n } else if (value instanceof Vector) { res[j++] = value as T; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectColumnChildrenArgs(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectColumnChildrenArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) {\n j = _selectArgs(Column, value.schema.fields.map((f, i) => Column.new(f, value.getChildAt(i)!)), res, j).length;\n } else if (value instanceof Column) { res[j++] = value as T; }\n }\n return res;\n}\n\n/** @ignore */\nconst toKeysAndValues = (xs: [any[], any[]], [k, v]: [any, any], i: number) => (xs[0][i] = k, xs[1][i] = v, xs);\n\n/** @ignore */\nfunction _selectFieldArgs(vals: any[], ret: [Field[], Vector[]]): [Field[], (T[keyof T] | Vector)[]] {\n let keys: any[], n: number;\n switch (n = vals.length) {\n case 0: return ret;\n case 1:\n keys = ret[0];\n if (!(vals[0])) { return ret; }\n if (isArray(vals[0])) { return _selectFieldArgs(vals[0], ret); }\n if (!(vals[0] instanceof Data || vals[0] instanceof Vector || vals[0] instanceof DataType)) {\n [keys, vals] = Object.entries(vals[0]).reduce(toKeysAndValues, ret);\n }\n break;\n default:\n !isArray(keys = vals[n - 1])\n ? (vals = isArray(vals[0]) ? vals[0] : vals, keys = [])\n : (vals = isArray(vals[0]) ? vals[0] : vals.slice(0, n - 1));\n }\n\n let fieldIndex = -1;\n let valueIndex = -1;\n let idx = -1, len = vals.length;\n let field: number | string | Field;\n let val: Vector | Data;\n let [fields, values] = ret as [Field[], any[]];\n\n while (++idx < len) {\n val = vals[idx];\n if (val instanceof Column && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = val.field.clone(keys[idx], val.type, true);\n } else {\n ({ [idx]: field = idx } = keys);\n if (val instanceof DataType && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = Field.new(field, val as DataType, true) as Field;\n } else if (val && val.type && (values[++valueIndex] = val)) {\n val instanceof Data && (values[valueIndex] = val = Vector.new(val) as Vector);\n fields[++fieldIndex] = Field.new(field, val.type, true) as Field;\n }\n }\n }\n return ret;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Vector } from './vector';\nimport { DataType } from './type';\nimport { selectArgs } from './util/args';\nimport { selectFieldArgs } from './util/args';\nimport { instance as comparer } from './visitor/typecomparator';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = T[keyof T][] | Data[] | Vector[];\n\nexport class Schema {\n\n public static from(children: T): Schema;\n public static from(children: T): Schema<{ [P in keyof T]: T[P]['type'] }>;\n public static from(children: ChildData, fields?: Fields): Schema;\n /** @nocollapse */\n public static from(...args: any[]) {\n return Schema.new(args[0], args[1]);\n }\n\n public static new(children: T): Schema;\n public static new(children: T): Schema<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): Schema;\n /** @nocollapse */\n public static new(...args: any[]) {\n return new Schema(selectFieldArgs(args)[0]);\n }\n\n public readonly fields: Field[];\n public readonly metadata: Map;\n public readonly dictionaries: Map;\n\n constructor(fields: Field[] = [],\n metadata?: Map | null,\n dictionaries?: Map | null) {\n this.fields = (fields || []) as Field[];\n this.metadata = metadata || new Map();\n if (!dictionaries) {\n dictionaries = generateDictionaryMap(fields);\n }\n this.dictionaries = dictionaries;\n }\n public get [Symbol.toStringTag]() { return 'Schema'; }\n public toString() {\n return `Schema<{ ${this.fields.map((f, i) => `${i}: ${f}`).join(', ')} }>`;\n }\n\n public compareTo(other?: Schema | null): other is Schema {\n return comparer.compareSchemas(this, other);\n }\n\n public select(...columnNames: K[]) {\n const names = columnNames.reduce((xs, x) => (xs[x] = true) && xs, Object.create(null));\n return new Schema<{ [P in K]: T[P] }>(this.fields.filter((f) => names[f.name]), this.metadata);\n }\n public selectAt(...columnIndices: number[]) {\n return new Schema<{ [key: string]: K }>(columnIndices.map((i) => this.fields[i]).filter(Boolean), this.metadata);\n }\n\n public assign(schema: Schema): Schema;\n public assign(...fields: (Field | Field[])[]): Schema;\n public assign(...args: (Schema | Field | Field[])[]) {\n\n const other = args[0] instanceof Schema ? args[0] as Schema\n : new Schema(selectArgs>(Field, args));\n\n const curFields = [...this.fields] as Field[];\n const metadata = mergeMaps(mergeMaps(new Map(), this.metadata), other.metadata);\n const newFields = other.fields.filter((f2) => {\n const i = curFields.findIndex((f) => f.name === f2.name);\n return ~i ? (curFields[i] = f2.clone({\n metadata: mergeMaps(mergeMaps(new Map(), curFields[i].metadata), f2.metadata)\n })) && false : true;\n }) as Field[];\n\n const newDictionaries = generateDictionaryMap(newFields, new Map());\n\n return new Schema(\n [...curFields, ...newFields], metadata,\n new Map([...this.dictionaries, ...newDictionaries])\n );\n }\n}\n\nexport class Field {\n\n public static new(props: { name: string | number, type: T, nullable?: boolean, metadata?: Map | null }): Field;\n public static new(name: string | number | Field, type: T, nullable?: boolean, metadata?: Map | null): Field;\n /** @nocollapse */\n public static new(...args: any[]) {\n let [name, type, nullable, metadata] = args;\n if (args[0] && typeof args[0] === 'object') {\n ({ name } = args[0]);\n (type === undefined) && (type = args[0].type);\n (nullable === undefined) && (nullable = args[0].nullable);\n (metadata === undefined) && (metadata = args[0].metadata);\n }\n return new Field(`${name}`, type, nullable, metadata);\n }\n\n public readonly type: T;\n public readonly name: string;\n public readonly nullable: boolean;\n public readonly metadata: Map;\n\n constructor(name: string, type: T, nullable = false, metadata?: Map | null) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata || new Map();\n }\n\n public get typeId() { return this.type.typeId; }\n public get [Symbol.toStringTag]() { return 'Field'; }\n public toString() { return `${this.name}: ${this.type}`; }\n public compareTo(other?: Field | null): other is Field {\n return comparer.compareField(this, other);\n }\n public clone(props: { name?: string | number, type?: R, nullable?: boolean, metadata?: Map | null }): Field;\n public clone(name?: string | number | Field, type?: R, nullable?: boolean, metadata?: Map | null): Field;\n public clone(...args: any[]) {\n let [name, type, nullable, metadata] = args;\n (!args[0] || typeof args[0] !== 'object')\n ? ([name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata] = args)\n : ({name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata} = args[0]);\n return Field.new(name, type, nullable, metadata);\n }\n}\n\n/** @ignore */\nfunction mergeMaps(m1?: Map | null, m2?: Map | null): Map {\n return new Map([...(m1 || new Map()), ...(m2 || new Map())]);\n}\n\n/** @ignore */\nfunction generateDictionaryMap(fields: Field[], dictionaries = new Map()): Map {\n\n for (let i = -1, n = fields.length; ++i < n;) {\n const field = fields[i];\n const type = field.type;\n if (DataType.isDictionary(type)) {\n if (!dictionaries.has(type.id)) {\n dictionaries.set(type.id, type.dictionary);\n } else if (dictionaries.get(type.id) !== type.dictionary) {\n throw new Error(`Cannot create Schema containing two different dictionaries with the same Id`);\n }\n }\n if (type.children && type.children.length > 0) {\n generateDictionaryMap(type.children, dictionaries);\n }\n }\n\n return dictionaries;\n}\n\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\n(Schema.prototype as any).fields = null;\n(Schema.prototype as any).metadata = null;\n(Schema.prototype as any).dictionaries = null;\n\n(Field.prototype as any).type = null;\n(Field.prototype as any).name = null;\n(Field.prototype as any).nullable = null;\n(Field.prototype as any).metadata = null;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Run } from './run';\nimport { Field } from '../schema';\nimport { DataType, List } from '../type';\nimport { OffsetsBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions, VariableWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class ListBuilder extends VariableWidthBuilder, TNull> {\n protected _run = new Run();\n protected _offsets: OffsetsBufferBuilder;\n constructor(opts: BuilderOptions, TNull>) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder();\n }\n public addChild(child: Builder, name = '0') {\n if (this.numChildren > 0) {\n throw new Error('ListBuilder can only have one child.');\n }\n this.children[this.numChildren] = child;\n this.type = new List(new Field(name, child.type, true));\n return this.numChildren - 1;\n }\n public clear() {\n this._run.clear();\n return super.clear();\n }\n protected _flushPending(pending: Map) {\n const run = this._run;\n const offsets = this._offsets;\n const setValue = this._setValue;\n let index = 0, value: Uint8Array | undefined;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n offsets.set(index, value.length);\n setValue(this, index, run.bind(value));\n }\n }\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Run } from './run';\nimport { Field } from '../schema';\nimport { Builder } from '../builder';\nimport { DataType, FixedSizeList } from '../type';\n\n/** @ignore */\nexport class FixedSizeListBuilder extends Builder, TNull> {\n protected _run = new Run();\n public setValue(index: number, value: T['TValue']) {\n super.setValue(index, this._run.bind(value));\n }\n public addChild(child: Builder, name = '0') {\n if (this.numChildren > 0) {\n throw new Error('FixedSizeListBuilder can only have one child.');\n }\n const childIndex = this.children.push(child);\n this.type = new FixedSizeList(this.type.listSize, new Field(name, child.type, true));\n return childIndex;\n }\n public clear() {\n this._run.clear();\n return super.clear();\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from '../schema';\nimport { DataType, Map_, Struct } from '../type';\nimport { Builder, VariableWidthBuilder } from '../builder';\n\n/** @ignore */ type MapValue = Map_['TValue'];\n/** @ignore */ type MapValues = Map | undefined>;\n/** @ignore */ type MapValueExt = MapValue | { [key: string]: V } | { [key: number]: V } ;\n\n/** @ignore */\nexport class MapBuilder extends VariableWidthBuilder, TNull> {\n\n protected _pending: MapValues | undefined;\n public set(index: number, value: MapValueExt | TNull) {\n return super.set(index, value as MapValue | TNull);\n }\n\n public setValue(index: number, value: MapValueExt) {\n value = value instanceof Map ? value : new Map(Object.entries(value));\n const pending = this._pending || (this._pending = new Map() as MapValues);\n const current = pending.get(index);\n current && (this._pendingLength -= current.size);\n this._pendingLength += value.size;\n pending.set(index, value);\n }\n\n public addChild(child: Builder>, name = `${this.numChildren}`) {\n if (this.numChildren > 0) {\n throw new Error('ListBuilder can only have one child.');\n }\n this.children[this.numChildren] = child;\n this.type = new Map_(new Field(name, child.type, true), this.type.keysSorted);\n return this.numChildren - 1;\n }\n\n protected _flushPending(pending: MapValues) {\n const offsets = this._offsets;\n const setValue = this._setValue;\n pending.forEach((value, index) => {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n offsets.set(index, value.size);\n setValue(this, index, value);\n }\n });\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from '../schema';\nimport { Builder } from '../builder';\nimport { DataType, Struct } from '../type';\n\n/** @ignore */\nexport class StructBuilder extends Builder, TNull> {\n public addChild(child: Builder, name = `${this.numChildren}`) {\n const childIndex = this.children.push(child);\n this.type = new Struct([...this.type.children, new Field(name, child.type, true)]);\n return childIndex;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from '../schema';\nimport { DataBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions } from '../builder';\nimport { Union, SparseUnion, DenseUnion } from '../type';\n\nexport interface UnionBuilderOptions extends BuilderOptions {\n valueToChildTypeId?: (builder: UnionBuilder, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport abstract class UnionBuilder extends Builder {\n\n protected _typeIds: DataBufferBuilder;\n\n constructor(options: UnionBuilderOptions) {\n super(options);\n this._typeIds = new DataBufferBuilder(new Int8Array(0), 1);\n if (typeof options['valueToChildTypeId'] === 'function') {\n this._valueToChildTypeId = options['valueToChildTypeId'];\n }\n }\n\n public get typeIdToChildIndex() { return this.type.typeIdToChildIndex; }\n\n public append(value: T['TValue'] | TNull, childTypeId?: number) {\n return this.set(this.length, value, childTypeId);\n }\n\n public set(index: number, value: T['TValue'] | TNull, childTypeId?: number) {\n if (childTypeId === undefined) {\n childTypeId = this._valueToChildTypeId(this, value, index);\n }\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value, childTypeId);\n }\n return this;\n }\n\n // @ts-ignore\n public setValue(index: number, value: T['TValue'], childTypeId?: number) {\n this._typeIds.set(index, childTypeId!);\n super.setValue(index, value);\n }\n\n // @ts-ignore\n public addChild(child: Builder, name = `${this.children.length}`) {\n const childTypeId = this.children.push(child);\n const { type: { children, mode, typeIds } } = this;\n const fields = [...children, new Field(name, child.type)];\n this.type = new Union(mode, [...typeIds, childTypeId], fields);\n return childTypeId;\n }\n\n /** @ignore */\n // @ts-ignore\n protected _valueToChildTypeId(builder: UnionBuilder, value: any, offset: number): number {\n throw new Error(`Cannot map UnionBuilder value to child typeId. \\\nPass the \\`childTypeId\\` as the second argument to unionBuilder.append(), \\\nor supply a \\`valueToChildTypeId\\` function as part of the UnionBuilder constructor options.`);\n }\n}\n\n/** @ignore */\nexport class SparseUnionBuilder extends UnionBuilder {}\n/** @ignore */\nexport class DenseUnionBuilder extends UnionBuilder {\n\n protected _offsets: DataBufferBuilder;\n\n constructor(options: UnionBuilderOptions) {\n super(options);\n this._offsets = new DataBufferBuilder(new Int32Array(0));\n }\n\n /** @ignore */\n public setValue(index: number, value: T['TValue'], childTypeId?: number) {\n const childIndex = this.type.typeIdToChildIndex[childTypeId!];\n this._offsets.set(index, this.getChildAt(childIndex)!.length);\n return super.setValue(index, value, childTypeId);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { Visitor } from '../visitor';\nimport { encodeUtf8 } from '../util/utf8';\nimport { VectorType } from '../interfaces';\nimport { float64ToUint16 } from '../util/math';\nimport { toArrayBufferView } from '../util/buffer';\nimport { Type, UnionMode, Precision, DateUnit, TimeUnit, IntervalUnit } from '../enum';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface SetVisitor extends Visitor {\n visit(node: T, index: number, value: T['TValue']): void;\n visitMany(nodes: T[], indices: number[], values: T['TValue'][]): void[];\n getVisitFn(node: T): (vector: VectorType, index: number, value: VectorType['TValue']) => void;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, index: number, value: VectorType['TValue']) => void;\n visitNull (vector: VectorType, index: number, value: T['TValue']): void;\n visitBool (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUtf8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitBinary (vector: VectorType, index: number, value: T['TValue']): void;\n visitFixedSizeBinary (vector: VectorType, index: number, value: T['TValue']): void;\n visitDate (vector: VectorType, index: number, value: T['TValue']): void;\n visitDateDay (vector: VectorType, index: number, value: T['TValue']): void;\n visitDateMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestamp (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampSecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampMicrosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampNanosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTime (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeSecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeMicrosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeNanosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitDecimal (vector: VectorType, index: number, value: T['TValue']): void;\n visitList (vector: VectorType, index: number, value: T['TValue']): void;\n visitStruct (vector: VectorType, index: number, value: T['TValue']): void;\n visitUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitDenseUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitSparseUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitDictionary (vector: VectorType, index: number, value: T['TValue']): void;\n visitInterval (vector: VectorType, index: number, value: T['TValue']): void;\n visitIntervalDayTime (vector: VectorType, index: number, value: T['TValue']): void;\n visitIntervalYearMonth (vector: VectorType, index: number, value: T['TValue']): void;\n visitFixedSizeList (vector: VectorType, index: number, value: T['TValue']): void;\n visitMap (vector: VectorType, index: number, value: T['TValue']): void;\n}\n\n/** @ignore */\nexport class SetVisitor extends Visitor {}\n\n/** @ignore */\nconst setEpochMsToDays = (data: Int32Array, index: number, epochMs: number) => { data[index] = (epochMs / 86400000) | 0; };\n/** @ignore */\nconst setEpochMsToMillisecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = (epochMs % 4294967296) | 0;\n data[index + 1] = (epochMs / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToMicrosecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = ((epochMs * 1000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000) / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToNanosecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = ((epochMs * 1000000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000000) / 4294967296) | 0;\n};\n\n/** @ignore */\nconst setVariableWidthBytes = (values: Uint8Array, valueOffsets: Int32Array, index: number, value: Uint8Array) => {\n const { [index]: x, [index + 1]: y } = valueOffsets;\n if (x != null && y != null) {\n values.set(value.subarray(0, y - x), x);\n }\n};\n\n/** @ignore */\nconst setBool = ({ offset, values }: VectorType, index: number, val: boolean) => {\n const idx = offset + index;\n val ? (values[idx >> 3] |= (1 << (idx % 8))) // true\n : (values[idx >> 3] &= ~(1 << (idx % 8))); // false\n\n};\n\n/** @ignore */ type Numeric1X = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32 | Float32 | Float64;\n/** @ignore */ type Numeric2X = Int64 | Uint64;\n\n/** @ignore */\nconst setDateDay = ({ values }: VectorType, index: number, value: T['TValue']): void => { setEpochMsToDays(values, index, value.valueOf()); };\n/** @ignore */\nconst setDateMillisecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { setEpochMsToMillisecondsLong(values, index * 2, value.valueOf()); };\n/** @ignore */\nconst setNumeric = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setFloat16 = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = float64ToUint16(value); };\n/** @ignore */\nconst setNumericX2 = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (typeof value) {\n case 'bigint': vector.values64[index] = value; break;\n case 'number': vector.values[index * vector.stride] = value; break;\n default:\n const val = value as T['TArray'];\n const { stride, ArrayType } = vector;\n const long = toArrayBufferView(ArrayType, val);\n vector.values.set(long.subarray(0, stride), stride * index);\n }\n};\n/** @ignore */\nconst setFixedSizeBinary = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, stride), stride * index); };\n\n/** @ignore */\nconst setBinary = ({ values, valueOffsets }: VectorType, index: number, value: T['TValue']) => setVariableWidthBytes(values, valueOffsets, index, value);\n/** @ignore */\nconst setUtf8 = ({ values, valueOffsets }: VectorType, index: number, value: T['TValue']) => {\n setVariableWidthBytes(values, valueOffsets, index, encodeUtf8(value));\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setInt = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.bitWidth < 64\n ? setNumeric(vector as VectorType, index, value as Numeric1X['TValue'])\n : setNumericX2(vector as VectorType, index, value as Numeric2X['TValue']);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setFloat = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.precision !== Precision.HALF\n ? setNumeric(vector as VectorType, index, value)\n : setFloat16(vector as VectorType, index, value);\n};\n\n/* istanbul ignore next */\nconst setDate = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.unit === DateUnit.DAY\n ? setDateDay(vector as VectorType, index, value)\n : setDateMillisecond(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setTimestampSecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value / 1000);\n/** @ignore */\nconst setTimestampMillisecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampMicrosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMicrosecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampNanosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToNanosecondsLong(values, index * 2, value);\n/* istanbul ignore next */\n/** @ignore */\nconst setTimestamp = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimestampSecond(vector as VectorType, index, value);\n case TimeUnit.MILLISECOND: return setTimestampMillisecond(vector as VectorType, index, value);\n case TimeUnit.MICROSECOND: return setTimestampMicrosecond(vector as VectorType, index, value);\n case TimeUnit.NANOSECOND: return setTimestampNanosecond(vector as VectorType, index, value);\n }\n};\n\n/** @ignore */\nconst setTimeSecond = ({ values, stride }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMillisecond = ({ values, stride }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMicrosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setTimeNanosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/* istanbul ignore next */\n/** @ignore */\nconst setTime = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimeSecond(vector as VectorType, index, value as TimeSecond['TValue']);\n case TimeUnit.MILLISECOND: return setTimeMillisecond(vector as VectorType, index, value as TimeMillisecond['TValue']);\n case TimeUnit.MICROSECOND: return setTimeMicrosecond(vector as VectorType, index, value as TimeMicrosecond['TValue']);\n case TimeUnit.NANOSECOND: return setTimeNanosecond(vector as VectorType, index, value as TimeNanosecond['TValue']);\n }\n};\n\n/** @ignore */\nconst setDecimal = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 4), 4 * index); };\n\n/** @ignore */\nconst setList = (vector: VectorType, index: number, value: T['TValue']): void => {\n const values = vector.getChildAt(0)!, valueOffsets = vector.valueOffsets;\n for (let idx = -1, itr = valueOffsets[index], end = valueOffsets[index + 1]; itr < end;) {\n values.set(itr++, value.get(++idx));\n }\n};\n\n/** @ignore */\nconst setMap = (vector: VectorType, index: number, value: T['TValue']) => {\n const values = vector.getChildAt(0)!, valueOffsets = vector.valueOffsets;\n const entries = value instanceof Map ? [...value] : Object.entries(value);\n for (let idx = -1, itr = valueOffsets[index], end = valueOffsets[index + 1]; itr < end;) {\n values.set(itr++, entries[++idx]);\n }\n};\n\n/** @ignore */ const _setStructArrayValue = (o: number, v: any[]) => (c: Vector | null, _: Field, i: number) => c && c.set(o, v[i]);\n/** @ignore */ const _setStructVectorValue = (o: number, v: Vector) => (c: Vector | null, _: Field, i: number) => c && c.set(o, v.get(i));\n/** @ignore */ const _setStructMapValue = (o: number, v: Map) => (c: Vector | null, f: Field, _: number) => c && c.set(o, v.get(f.name));\n/** @ignore */ const _setStructObjectValue = (o: number, v: { [key: string]: any }) => (c: Vector | null, f: Field, _: number) => c && c.set(o, v[f.name]);\n/** @ignore */\nconst setStruct = (vector: VectorType, index: number, value: T['TValue']) => {\n\n const setValue = value instanceof Map ? _setStructMapValue(index, value) :\n value instanceof Vector ? _setStructVectorValue(index, value) :\n Array.isArray(value) ? _setStructArrayValue(index, value) :\n _setStructObjectValue(index, value) ;\n\n vector.type.children.forEach((f: Field, i: number) => setValue(vector.getChildAt(i), f, i));\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setUnion = <\n V extends VectorType | VectorType | VectorType\n>(vector: V, index: number, value: V['TValue']) => {\n vector.type.mode === UnionMode.Dense ?\n setDenseUnion(vector as VectorType, index, value) :\n setSparseUnion(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setDenseUnion = (vector: VectorType, index: number, value: T['TValue']): void => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(vector.valueOffsets[index], value);\n};\n\n/** @ignore */\nconst setSparseUnion = (vector: VectorType, index: number, value: T['TValue']): void => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(index, value);\n};\n\n/** @ignore */\nconst setDictionary = (vector: VectorType, index: number, value: T['TValue']): void => {\n const key = vector.getKey(index);\n if (key !== null) {\n vector.setValue(key, value);\n }\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setIntervalValue = (vector: VectorType, index: number, value: T['TValue']): void => {\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? setIntervalDayTime(vector as VectorType, index, value)\n : setIntervalYearMonth(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setIntervalDayTime = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setIntervalYearMonth = ({ values }: VectorType, index: number, value: T['TValue']): void => { values[index] = (value[0] * 12) + (value[1] % 12); };\n\n/** @ignore */\nconst setFixedSizeList = (vector: VectorType, index: number, value: T['TValue']): void => {\n const child = vector.getChildAt(0)!, { stride } = vector;\n for (let idx = -1, offset = index * stride; ++idx < stride;) {\n child.set(offset + idx, value.get(idx));\n }\n};\n\nSetVisitor.prototype.visitBool = setBool;\nSetVisitor.prototype.visitInt = setInt;\nSetVisitor.prototype.visitInt8 = setNumeric;\nSetVisitor.prototype.visitInt16 = setNumeric;\nSetVisitor.prototype.visitInt32 = setNumeric;\nSetVisitor.prototype.visitInt64 = setNumericX2;\nSetVisitor.prototype.visitUint8 = setNumeric;\nSetVisitor.prototype.visitUint16 = setNumeric;\nSetVisitor.prototype.visitUint32 = setNumeric;\nSetVisitor.prototype.visitUint64 = setNumericX2;\nSetVisitor.prototype.visitFloat = setFloat;\nSetVisitor.prototype.visitFloat16 = setFloat16;\nSetVisitor.prototype.visitFloat32 = setNumeric;\nSetVisitor.prototype.visitFloat64 = setNumeric;\nSetVisitor.prototype.visitUtf8 = setUtf8;\nSetVisitor.prototype.visitBinary = setBinary;\nSetVisitor.prototype.visitFixedSizeBinary = setFixedSizeBinary;\nSetVisitor.prototype.visitDate = setDate;\nSetVisitor.prototype.visitDateDay = setDateDay;\nSetVisitor.prototype.visitDateMillisecond = setDateMillisecond;\nSetVisitor.prototype.visitTimestamp = setTimestamp;\nSetVisitor.prototype.visitTimestampSecond = setTimestampSecond;\nSetVisitor.prototype.visitTimestampMillisecond = setTimestampMillisecond;\nSetVisitor.prototype.visitTimestampMicrosecond = setTimestampMicrosecond;\nSetVisitor.prototype.visitTimestampNanosecond = setTimestampNanosecond;\nSetVisitor.prototype.visitTime = setTime;\nSetVisitor.prototype.visitTimeSecond = setTimeSecond;\nSetVisitor.prototype.visitTimeMillisecond = setTimeMillisecond;\nSetVisitor.prototype.visitTimeMicrosecond = setTimeMicrosecond;\nSetVisitor.prototype.visitTimeNanosecond = setTimeNanosecond;\nSetVisitor.prototype.visitDecimal = setDecimal;\nSetVisitor.prototype.visitList = setList;\nSetVisitor.prototype.visitStruct = setStruct;\nSetVisitor.prototype.visitUnion = setUnion;\nSetVisitor.prototype.visitDenseUnion = setDenseUnion;\nSetVisitor.prototype.visitSparseUnion = setSparseUnion;\nSetVisitor.prototype.visitDictionary = setDictionary;\nSetVisitor.prototype.visitInterval = setIntervalValue;\nSetVisitor.prototype.visitIntervalDayTime = setIntervalDayTime;\nSetVisitor.prototype.visitIntervalYearMonth = setIntervalYearMonth;\nSetVisitor.prototype.visitFixedSizeList = setFixedSizeList;\nSetVisitor.prototype.visitMap = setMap;\n\n/** @ignore */\nexport const instance = new SetVisitor();\n","// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS7624605610262437867 from './Schema';\n/**\n * ----------------------------------------------------------------------\n * Arrow File metadata\n *\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Footer {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Footer\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Footer {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Footer= obj\n * @returns Footer\n */\n static getRootAsFooter(bb: flatbuffers.ByteBuffer, obj?: Footer): Footer {\n return (obj || new Footer).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MetadataVersion\n */\n version(): NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1;\n }\n\n /**\n * @param org.apache.arrow.flatbuf.Schema= obj\n * @returns org.apache.arrow.flatbuf.Schema|null\n */\n schema(obj?: NS7624605610262437867.org.apache.arrow.flatbuf.Schema): NS7624605610262437867.org.apache.arrow.flatbuf.Schema | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.Schema).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Block= obj\n * @returns org.apache.arrow.flatbuf.Block\n */\n dictionaries(index: number, obj?: org.apache.arrow.flatbuf.Block): org.apache.arrow.flatbuf.Block | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new org.apache.arrow.flatbuf.Block).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n dictionariesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Block= obj\n * @returns org.apache.arrow.flatbuf.Block\n */\n recordBatches(index: number, obj?: org.apache.arrow.flatbuf.Block): org.apache.arrow.flatbuf.Block | null {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? (obj || new org.apache.arrow.flatbuf.Block).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n recordBatchesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFooter(builder: flatbuffers.Builder) {\n builder.startObject(4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion) {\n builder.addFieldInt16(0, version, NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset schemaOffset\n */\n static addSchema(builder: flatbuffers.Builder, schemaOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, schemaOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionariesOffset\n */\n static addDictionaries(builder: flatbuffers.Builder, dictionariesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, dictionariesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startDictionariesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(24, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset recordBatchesOffset\n */\n static addRecordBatches(builder: flatbuffers.Builder, recordBatchesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, recordBatchesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startRecordBatchesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(24, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFooter(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishFooterBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createFooter(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion, schemaOffset: flatbuffers.Offset, dictionariesOffset: flatbuffers.Offset, recordBatchesOffset: flatbuffers.Offset): flatbuffers.Offset {\n Footer.startFooter(builder);\n Footer.addVersion(builder, version);\n Footer.addSchema(builder, schemaOffset);\n Footer.addDictionaries(builder, dictionariesOffset);\n Footer.addRecordBatches(builder, recordBatchesOffset);\n return Footer.endFooter(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Block {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Block\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Block {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * Index to the start of the RecordBlock (note this is past the Message header)\n *\n * @returns flatbuffers.Long\n */\n offset(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * Length of the metadata\n *\n * @returns number\n */\n metaDataLength(): number {\n return this.bb!.readInt32(this.bb_pos + 8);\n }\n\n /**\n * Length of the data (this is aligned so there can be a gap between this and\n * the metatdata).\n *\n * @returns flatbuffers.Long\n */\n bodyLength(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 16);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long offset\n * @param number metaDataLength\n * @param flatbuffers.Long bodyLength\n * @returns flatbuffers.Offset\n */\n static createBlock(builder: flatbuffers.Builder, offset: flatbuffers.Long, metaDataLength: number, bodyLength: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 24);\n builder.writeInt64(bodyLength);\n builder.pad(4);\n builder.writeInt32(metaDataLength);\n builder.writeInt64(offset);\n return builder.offset();\n }\n\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { VectorType, BuilderCtor } from '../interfaces';\nimport { BinaryBuilder } from '../builder/binary';\nimport { BoolBuilder } from '../builder/bool';\nimport { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from '../builder/date';\nimport { DecimalBuilder } from '../builder/decimal';\nimport { DictionaryBuilder } from '../builder/dictionary';\nimport { FixedSizeBinaryBuilder } from '../builder/fixedsizebinary';\nimport { FixedSizeListBuilder } from '../builder/fixedsizelist';\nimport { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from '../builder/float';\nimport { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder } from '../builder/interval';\nimport { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from '../builder/int';\nimport { ListBuilder } from '../builder/list';\nimport { MapBuilder } from '../builder/map';\nimport { NullBuilder } from '../builder/null';\nimport { StructBuilder } from '../builder/struct';\nimport { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from '../builder/timestamp';\nimport { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from '../builder/time';\nimport { UnionBuilder, DenseUnionBuilder, SparseUnionBuilder } from '../builder/union';\nimport { Utf8Builder } from '../builder/utf8';\n\n/** @ignore */\nexport interface GetBuilderCtor extends Visitor {\n visit(type: T): BuilderCtor;\n visitMany(types: T[]): BuilderCtor[];\n getVisitFn(type: T): () => BuilderCtor;\n getVisitFn(node: VectorType | Data | T): () => BuilderCtor;\n}\n\n/** @ignore */\nexport class GetBuilderCtor extends Visitor {\n public visitNull () { return NullBuilder; }\n public visitBool () { return BoolBuilder; }\n public visitInt () { return IntBuilder; }\n public visitInt8 () { return Int8Builder; }\n public visitInt16 () { return Int16Builder; }\n public visitInt32 () { return Int32Builder; }\n public visitInt64 () { return Int64Builder; }\n public visitUint8 () { return Uint8Builder; }\n public visitUint16 () { return Uint16Builder; }\n public visitUint32 () { return Uint32Builder; }\n public visitUint64 () { return Uint64Builder; }\n public visitFloat () { return FloatBuilder; }\n public visitFloat16 () { return Float16Builder; }\n public visitFloat32 () { return Float32Builder; }\n public visitFloat64 () { return Float64Builder; }\n public visitUtf8 () { return Utf8Builder; }\n public visitBinary () { return BinaryBuilder; }\n public visitFixedSizeBinary () { return FixedSizeBinaryBuilder; }\n public visitDate () { return DateBuilder; }\n public visitDateDay () { return DateDayBuilder; }\n public visitDateMillisecond () { return DateMillisecondBuilder; }\n public visitTimestamp () { return TimestampBuilder; }\n public visitTimestampSecond () { return TimestampSecondBuilder; }\n public visitTimestampMillisecond () { return TimestampMillisecondBuilder; }\n public visitTimestampMicrosecond () { return TimestampMicrosecondBuilder; }\n public visitTimestampNanosecond () { return TimestampNanosecondBuilder; }\n public visitTime () { return TimeBuilder; }\n public visitTimeSecond () { return TimeSecondBuilder; }\n public visitTimeMillisecond () { return TimeMillisecondBuilder; }\n public visitTimeMicrosecond () { return TimeMicrosecondBuilder; }\n public visitTimeNanosecond () { return TimeNanosecondBuilder; }\n public visitDecimal () { return DecimalBuilder; }\n public visitList () { return ListBuilder; }\n public visitStruct () { return StructBuilder; }\n public visitUnion () { return UnionBuilder; }\n public visitDenseUnion () { return DenseUnionBuilder; }\n public visitSparseUnion () { return SparseUnionBuilder; }\n public visitDictionary () { return DictionaryBuilder; }\n public visitInterval () { return IntervalBuilder; }\n public visitIntervalDayTime () { return IntervalDayTimeBuilder; }\n public visitIntervalYearMonth () { return IntervalYearMonthBuilder; }\n public visitFixedSizeList () { return FixedSizeListBuilder; }\n public visitMap () { return MapBuilder; }\n}\n\n/** @ignore */\nexport const instance = new GetBuilderCtor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nexport { Builder, BuilderOptions } from '../builder';\nexport { BoolBuilder } from './bool';\nexport { NullBuilder } from './null';\nexport { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from './date';\nexport { DecimalBuilder } from './decimal';\nexport { DictionaryBuilder } from './dictionary';\nexport { FixedSizeBinaryBuilder } from './fixedsizebinary';\nexport { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from './float';\nexport { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from './int';\nexport { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from './time';\nexport { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from './timestamp';\nexport { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder } from './interval';\nexport { Utf8Builder } from './utf8';\nexport { BinaryBuilder } from './binary';\nexport { ListBuilder } from './list';\nexport { FixedSizeListBuilder } from './fixedsizelist';\nexport { MapBuilder } from './map';\nexport { StructBuilder } from './struct';\nexport { UnionBuilder, SparseUnionBuilder, DenseUnionBuilder } from './union';\n\nimport { Type } from '../enum';\nimport { Field } from '../schema';\nimport { DataType } from '../type';\nimport { Utf8Builder } from './utf8';\nimport { BuilderType as B } from '../interfaces';\nimport { Builder, BuilderOptions } from '../builder';\nimport { instance as setVisitor } from '../visitor/set';\nimport { instance as getBuilderConstructor } from '../visitor/builderctor';\n\n/** @nocollapse */\nBuilder.new = newBuilder;\n\nfunction newBuilder(options: BuilderOptions): B {\n\n const type = options.type;\n const builder = new (getBuilderConstructor.getVisitFn(type)())(options) as Builder;\n\n if (type.children && type.children.length > 0) {\n\n const children = options['children'] || [] as BuilderOptions[];\n const defaultOptions = { 'nullValues': options['nullValues'] };\n const getChildOptions = Array.isArray(children)\n ? ((_: Field, i: number) => children[i] || defaultOptions)\n : (({ name }: Field) => children[name] || defaultOptions);\n\n type.children.forEach((field, index) => {\n const { type } = field;\n const opts = getChildOptions(field, index);\n builder.children.push(newBuilder({ ...opts, type }));\n });\n }\n\n return builder as B;\n}\n\n(Object.keys(Type) as any[])\n .map((T: any) => Type[T] as any)\n .filter((T: any): T is Type => typeof T === 'number' && T !== Type.NONE)\n .forEach((typeId) => {\n const BuilderCtor = getBuilderConstructor.visit(typeId);\n BuilderCtor.prototype._setValue = setVisitor.getVisitFn(typeId);\n });\n\n(Utf8Builder.prototype as any)._setValue = setVisitor.visitBinary;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/* tslint:disable:class-name */\n\nimport * as File_ from '../../fb/File';\nimport { flatbuffers } from 'flatbuffers';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport _Block = File_.org.apache.arrow.flatbuf.Block;\nimport _Footer = File_.org.apache.arrow.flatbuf.Footer;\n\nimport { Schema } from '../../schema';\nimport { MetadataVersion } from '../../enum';\nimport { toUint8Array } from '../../util/buffer';\nimport { ArrayBufferViewInput } from '../../util/buffer';\n\n/** @ignore */\nclass Footer_ {\n\n /** @nocollapse */\n public static decode(buf: ArrayBufferViewInput) {\n buf = new ByteBuffer(toUint8Array(buf));\n const footer = _Footer.getRootAsFooter(buf);\n const schema = Schema.decode(footer.schema()!);\n return new OffHeapFooter(schema, footer) as Footer_;\n }\n\n /** @nocollapse */\n public static encode(footer: Footer_) {\n\n const b: Builder = new Builder();\n const schemaOffset = Schema.encode(b, footer.schema);\n\n _Footer.startRecordBatchesVector(b, footer.numRecordBatches);\n [...footer.recordBatches()].slice().reverse().forEach((rb) => FileBlock.encode(b, rb));\n const recordBatchesOffset = b.endVector();\n\n _Footer.startDictionariesVector(b, footer.numDictionaries);\n [...footer.dictionaryBatches()].slice().reverse().forEach((db) => FileBlock.encode(b, db));\n\n const dictionaryBatchesOffset = b.endVector();\n\n _Footer.startFooter(b);\n _Footer.addSchema(b, schemaOffset);\n _Footer.addVersion(b, MetadataVersion.V4);\n _Footer.addRecordBatches(b, recordBatchesOffset);\n _Footer.addDictionaries(b, dictionaryBatchesOffset);\n _Footer.finishFooterBuffer(b, _Footer.endFooter(b));\n\n return b.asUint8Array();\n }\n\n // @ts-ignore\n protected _recordBatches: FileBlock[];\n // @ts-ignore\n protected _dictionaryBatches: FileBlock[];\n public get numRecordBatches() { return this._recordBatches.length; }\n public get numDictionaries() { return this._dictionaryBatches.length; }\n\n constructor(public schema: Schema,\n public version: MetadataVersion = MetadataVersion.V4,\n recordBatches?: FileBlock[], dictionaryBatches?: FileBlock[]) {\n recordBatches && (this._recordBatches = recordBatches);\n dictionaryBatches && (this._dictionaryBatches = dictionaryBatches);\n }\n\n public *recordBatches(): Iterable {\n for (let block, i = -1, n = this.numRecordBatches; ++i < n;) {\n if (block = this.getRecordBatch(i)) { yield block; }\n }\n }\n\n public *dictionaryBatches(): Iterable {\n for (let block, i = -1, n = this.numDictionaries; ++i < n;) {\n if (block = this.getDictionaryBatch(i)) { yield block; }\n }\n }\n\n public getRecordBatch(index: number) {\n return index >= 0\n && index < this.numRecordBatches\n && this._recordBatches[index] || null;\n }\n\n public getDictionaryBatch(index: number) {\n return index >= 0\n && index < this.numDictionaries\n && this._dictionaryBatches[index] || null;\n }\n}\n\nexport { Footer_ as Footer };\n\n/** @ignore */\nclass OffHeapFooter extends Footer_ {\n\n public get numRecordBatches() { return this._footer.recordBatchesLength(); }\n public get numDictionaries() { return this._footer.dictionariesLength(); }\n\n constructor(schema: Schema, protected _footer: _Footer) {\n super(schema, _footer.version());\n }\n\n public getRecordBatch(index: number) {\n if (index >= 0 && index < this.numRecordBatches) {\n const fileBlock = this._footer.recordBatches(index);\n if (fileBlock) { return FileBlock.decode(fileBlock); }\n }\n return null;\n }\n\n public getDictionaryBatch(index: number) {\n if (index >= 0 && index < this.numDictionaries) {\n const fileBlock = this._footer.dictionaries(index);\n if (fileBlock) { return FileBlock.decode(fileBlock); }\n }\n return null;\n }\n}\n\n/** @ignore */\nexport class FileBlock {\n\n /** @nocollapse */\n public static decode(block: _Block) {\n return new FileBlock(block.metaDataLength(), block.bodyLength(), block.offset());\n }\n\n /** @nocollapse */\n public static encode(b: Builder, fileBlock: FileBlock) {\n const { metaDataLength } = fileBlock;\n const offset = new Long(fileBlock.offset, 0);\n const bodyLength = new Long(fileBlock.bodyLength, 0);\n return _Block.createBlock(b, offset, metaDataLength, bodyLength);\n }\n\n public offset: number;\n public bodyLength: number;\n public metaDataLength: number;\n\n constructor(metaDataLength: number, bodyLength: Long | number, offset: Long | number) {\n this.metaDataLength = metaDataLength;\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './adapters';\nimport { decodeUtf8 } from '../util/utf8';\nimport { ITERATOR_DONE, Readable, Writable, AsyncQueue } from './interfaces';\nimport { toUint8Array, joinUint8Arrays, ArrayBufferViewInput } from '../util/buffer';\n\nimport {\n isPromise, isFetchResponse,\n isIterable, isAsyncIterable,\n isReadableDOMStream, isReadableNodeStream\n} from '../util/compat';\n\n/** @ignore */\nexport type WritableSink = Writable | WritableStream | NodeJS.WritableStream | null;\n/** @ignore */\nexport type ReadableSource = Readable | PromiseLike | AsyncIterable | ReadableStream | NodeJS.ReadableStream | null;\n\n/** @ignore */\nexport class AsyncByteQueue extends AsyncQueue {\n public write(value: ArrayBufferViewInput | Uint8Array) {\n if ((value = toUint8Array(value)).byteLength > 0) {\n return super.write(value as T);\n }\n }\n public toString(sync: true): string;\n public toString(sync?: false): Promise;\n public toString(sync = false) {\n return sync\n ? decodeUtf8(this.toUint8Array(true))\n : this.toUint8Array(false).then(decodeUtf8);\n }\n public toUint8Array(sync: true): Uint8Array;\n public toUint8Array(sync?: false): Promise;\n public toUint8Array(sync = false) {\n return sync ? joinUint8Arrays(this._values as any[])[0] : (async () => {\n let buffers = [], byteLength = 0;\n for await (const chunk of this) {\n buffers.push(chunk);\n byteLength += chunk.byteLength;\n }\n return joinUint8Arrays(buffers, byteLength)[0];\n })();\n }\n}\n\n/** @ignore */\nexport class ByteStream implements IterableIterator {\n // @ts-ignore\n private source: ByteStreamSource;\n constructor(source?: Iterable | ArrayBufferViewInput) {\n if (source) {\n this.source = new ByteStreamSource(streamAdapters.fromIterable(source));\n }\n }\n [Symbol.iterator]() { return this; }\n public next(value?: any) { return this.source.next(value); }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public peek(size?: number | null) { return this.source.peek(size); }\n public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\nexport class AsyncByteStream implements Readable, AsyncIterableIterator {\n // @ts-ignore\n private source: AsyncByteStreamSource;\n constructor(source?: PromiseLike | Response | ReadableStream | NodeJS.ReadableStream | AsyncIterable | Iterable) {\n if (source instanceof AsyncByteStream) {\n this.source = (source as AsyncByteStream).source;\n } else if (source instanceof AsyncByteQueue) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n } else if (isReadableNodeStream(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromNodeStream(source));\n } else if (isReadableDOMStream(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source));\n } else if (isFetchResponse(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source.body!));\n } else if (isIterable(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromIterable(source));\n } else if (isPromise(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n } else if (isAsyncIterable(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n }\n }\n [Symbol.asyncIterator]() { return this; }\n public next(value?: any) { return this.source.next(value); }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public get closed(): Promise { return this.source.closed; }\n public cancel(reason?: any) { return this.source.cancel(reason); }\n public peek(size?: number | null) { return this.source.peek(size); }\n public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\ninterface ByteStreamSourceIterator extends IterableIterator {\n next(value?: { cmd: 'peek' | 'read', size?: number | null }): IteratorResult;\n}\n\n/** @ignore */\ninterface AsyncByteStreamSourceIterator extends AsyncIterableIterator {\n next(value?: { cmd: 'peek' | 'read', size?: number | null }): Promise>;\n}\n\n/** @ignore */\nclass ByteStreamSource {\n constructor(protected source: ByteStreamSourceIterator) {}\n public cancel(reason?: any) { this.return(reason); }\n public peek(size?: number | null): T | null { return this.next(size, 'peek').value; }\n public read(size?: number | null): T | null { return this.next(size, 'read').value; }\n public next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return this.source.next({ cmd, size }); }\n public throw(value?: any) { return Object.create((this.source.throw && this.source.throw(value)) || ITERATOR_DONE); }\n public return(value?: any) { return Object.create((this.source.return && this.source.return(value)) || ITERATOR_DONE); }\n}\n\n/** @ignore */\nclass AsyncByteStreamSource implements Readable {\n\n private _closedPromise: Promise;\n private _closedPromiseResolve?: (value?: any) => void;\n constructor (protected source: ByteStreamSourceIterator | AsyncByteStreamSourceIterator) {\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n public async cancel(reason?: any) { await this.return(reason); }\n public get closed(): Promise { return this._closedPromise; }\n public async read(size?: number | null): Promise { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise { return (await this.next(size, 'peek')).value; }\n public async next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return (await this.source.next({ cmd, size })); }\n public async throw(value?: any) {\n const result = (this.source.throw && await this.source.throw(value)) || ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n public async return(value?: any) {\n const result = (this.source.return && await this.source.return(value)) || ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FileHandle } from './interfaces';\nimport { ByteStream, AsyncByteStream } from './stream';\nimport { ArrayBufferViewInput, toUint8Array } from '../util/buffer';\n\n/** @ignore */\nexport class RandomAccessFile extends ByteStream {\n public size: number;\n public position: number = 0;\n protected buffer: Uint8Array | null;\n constructor(buffer: ArrayBufferViewInput, byteLength?: number) {\n super();\n this.buffer = toUint8Array(buffer);\n this.size = typeof byteLength === 'undefined' ? this.buffer.byteLength : byteLength;\n }\n public readInt32(position: number) {\n const { buffer, byteOffset } = this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n public seek(position: number) {\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n public read(nBytes?: number | null) {\n const { buffer, size, position } = this;\n if (buffer && position < size) {\n if (typeof nBytes !== 'number') { nBytes = Infinity; }\n this.position = Math.min(size,\n position + Math.min(size - position, nBytes));\n return buffer.subarray(position, this.position);\n }\n return null;\n }\n public readAt(position: number, nBytes: number) {\n const buf = this.buffer;\n const end = Math.min(this.size, position + nBytes);\n return buf ? buf.subarray(position, end) : new Uint8Array(nBytes);\n }\n public close() { this.buffer && (this.buffer = null); }\n public throw(value?: any) { this.close(); return { done: true, value }; }\n public return(value?: any) { this.close(); return { done: true, value }; }\n}\n\n/** @ignore */\nexport class AsyncRandomAccessFile extends AsyncByteStream {\n // @ts-ignore\n public size: number;\n public position: number = 0;\n public _pending?: Promise;\n protected _handle: FileHandle | null;\n constructor(file: FileHandle, byteLength?: number) {\n super();\n this._handle = file;\n if (typeof byteLength === 'number') {\n this.size = byteLength;\n } else {\n this._pending = (async () => {\n this.size = (await file.stat()).size;\n delete this._pending;\n })();\n }\n }\n public async readInt32(position: number) {\n const { buffer, byteOffset } = await this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n public async seek(position: number) {\n this._pending && await this._pending;\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n public async read(nBytes?: number | null) {\n this._pending && await this._pending;\n const { _handle: file, size, position } = this;\n if (file && position < size) {\n if (typeof nBytes !== 'number') { nBytes = Infinity; }\n let pos = position, offset = 0, bytesRead = 0;\n let end = Math.min(size, pos + Math.min(size - pos, nBytes));\n let buffer = new Uint8Array(Math.max(0, (this.position = end) - pos));\n while ((pos += bytesRead) < end && (offset += bytesRead) < buffer.byteLength) {\n ({ bytesRead } = await file.read(buffer, offset, buffer.byteLength - offset, pos));\n }\n return buffer;\n }\n return null;\n }\n public async readAt(position: number, nBytes: number) {\n this._pending && await this._pending;\n const { _handle: file, size } = this;\n if (file && (position + nBytes) < size) {\n const end = Math.min(size, position + nBytes);\n const buffer = new Uint8Array(end - position);\n return (await file.read(buffer, 0, nBytes, position)).buffer;\n }\n return new Uint8Array(nBytes);\n }\n public async close() { const f = this._handle; this._handle = null; f && await f.close(); }\n public async throw(value?: any) { await this.close(); return { done: true, value }; }\n public async return(value?: any) { await this.close(); return { done: true, value }; }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nconst carryBit16 = 1 << 16;\n\n/** @ignore */\nfunction intAsHex(value: number): string {\n if (value < 0) {\n value = 0xFFFFFFFF + value + 1;\n }\n return `0x${value.toString(16)}`;\n}\n\n/** @ignore */\nconst kInt32DecimalDigits = 8;\n/** @ignore */\nconst kPowersOfTen = [1,\n 10,\n 100,\n 1000,\n 10000,\n 100000,\n 1000000,\n 10000000,\n 100000000];\n\n/** @ignore */\nexport class BaseInt64 {\n constructor (protected buffer: Uint32Array) {}\n\n public high(): number { return this.buffer[1]; }\n public low (): number { return this.buffer[0]; }\n\n protected _times(other: BaseInt64) {\n // Break the left and right numbers into 16 bit chunks\n // so that we can multiply them without overflow.\n const L = new Uint32Array([\n this.buffer[1] >>> 16,\n this.buffer[1] & 0xFFFF,\n this.buffer[0] >>> 16,\n this.buffer[0] & 0xFFFF\n ]);\n\n const R = new Uint32Array([\n other.buffer[1] >>> 16,\n other.buffer[1] & 0xFFFF,\n other.buffer[0] >>> 16,\n other.buffer[0] & 0xFFFF\n ]);\n\n let product = L[3] * R[3];\n this.buffer[0] = product & 0xFFFF;\n\n let sum = product >>> 16;\n\n product = L[2] * R[3];\n sum += product;\n\n product = (L[3] * R[2]) >>> 0;\n sum += product;\n\n this.buffer[0] += sum << 16;\n\n this.buffer[1] = (sum >>> 0 < product ? carryBit16 : 0);\n\n this.buffer[1] += sum >>> 16;\n this.buffer[1] += L[1] * R[3] + L[2] * R[2] + L[3] * R[1];\n this.buffer[1] += (L[0] * R[3] + L[1] * R[2] + L[2] * R[1] + L[3] * R[0]) << 16;\n\n return this;\n }\n\n protected _plus(other: BaseInt64) {\n const sum = (this.buffer[0] + other.buffer[0]) >>> 0;\n this.buffer[1] += other.buffer[1];\n if (sum < (this.buffer[0] >>> 0)) {\n ++this.buffer[1];\n }\n this.buffer[0] = sum;\n }\n\n public lessThan(other: BaseInt64): boolean {\n return this.buffer[1] < other.buffer[1] ||\n (this.buffer[1] === other.buffer[1] && this.buffer[0] < other.buffer[0]);\n }\n\n public equals(other: BaseInt64): boolean {\n return this.buffer[1] === other.buffer[1] && this.buffer[0] == other.buffer[0];\n }\n\n public greaterThan(other: BaseInt64): boolean {\n return other.lessThan(this);\n }\n\n public hex(): string {\n return `${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n}\n\n/** @ignore */\nexport class Uint64 extends BaseInt64 {\n public times(other: Uint64): Uint64 {\n this._times(other);\n return this;\n }\n\n public plus(other: Uint64): Uint64 {\n this._plus(other);\n return this;\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(2)): Uint64 {\n return Uint64.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(2)): Uint64 {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Uint64.fromString(num.toString(), out_buffer);\n }\n\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(2)): Uint64 {\n const length = str.length;\n\n let out = new Uint64(out_buffer);\n for (let posn = 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Uint64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Uint64(new Uint32Array([kPowersOfTen[group], 0]));\n\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n\n return out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\n const data = new Uint32Array(values.length * 2);\n for (let i = -1, n = values.length; ++i < n;) {\n Uint64.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 2 * i * 4, 2));\n }\n return data;\n }\n\n /** @nocollapse */\n public static multiply(left: Uint64, right: Uint64): Uint64 {\n let rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Uint64, right: Uint64): Uint64 {\n let rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\n\n/** @ignore */\nexport class Int64 extends BaseInt64 {\n public negate(): Int64 {\n this.buffer[0] = ~this.buffer[0] + 1;\n this.buffer[1] = ~this.buffer[1];\n\n if (this.buffer[0] == 0) { ++this.buffer[1]; }\n return this;\n }\n\n public times(other: Int64): Int64 {\n this._times(other);\n return this;\n }\n\n public plus(other: Int64): Int64 {\n this._plus(other);\n return this;\n }\n\n public lessThan(other: Int64): boolean {\n // force high bytes to be signed\n const this_high = this.buffer[1] << 0;\n const other_high = other.buffer[1] << 0;\n return this_high < other_high ||\n (this_high === other_high && this.buffer[0] < other.buffer[0]);\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(2)): Int64 {\n return Int64.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(2)): Int64 {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Int64.fromString(num.toString(), out_buffer);\n }\n\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(2)): Int64 {\n // TODO: Assert that out_buffer is 0 and length = 2\n const negate = str.startsWith('-');\n const length = str.length;\n\n let out = new Int64(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Int64(new Uint32Array([kPowersOfTen[group], 0]));\n\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n return negate ? out.negate() : out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\n const data = new Uint32Array(values.length * 2);\n for (let i = -1, n = values.length; ++i < n;) {\n Int64.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 2 * i * 4, 2));\n }\n return data;\n }\n\n /** @nocollapse */\n public static multiply(left: Int64, right: Int64): Int64 {\n let rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Int64, right: Int64): Int64 {\n let rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\n\n/** @ignore */\nexport class Int128 {\n constructor (private buffer: Uint32Array) {\n // buffer[3] MSB (high)\n // buffer[2]\n // buffer[1]\n // buffer[0] LSB (low)\n }\n\n public high(): Int64 {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n }\n\n public low(): Int64 {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset, 2));\n }\n\n public negate(): Int128 {\n this.buffer[0] = ~this.buffer[0] + 1;\n this.buffer[1] = ~this.buffer[1];\n this.buffer[2] = ~this.buffer[2];\n this.buffer[3] = ~this.buffer[3];\n\n if (this.buffer[0] == 0) { ++this.buffer[1]; }\n if (this.buffer[1] == 0) { ++this.buffer[2]; }\n if (this.buffer[2] == 0) { ++this.buffer[3]; }\n return this;\n }\n\n public times(other: Int128): Int128 {\n // Break the left and right numbers into 32 bit chunks\n // so that we can multiply them without overflow.\n const L0 = new Uint64(new Uint32Array([this.buffer[3], 0]));\n const L1 = new Uint64(new Uint32Array([this.buffer[2], 0]));\n const L2 = new Uint64(new Uint32Array([this.buffer[1], 0]));\n const L3 = new Uint64(new Uint32Array([this.buffer[0], 0]));\n\n const R0 = new Uint64(new Uint32Array([other.buffer[3], 0]));\n const R1 = new Uint64(new Uint32Array([other.buffer[2], 0]));\n const R2 = new Uint64(new Uint32Array([other.buffer[1], 0]));\n const R3 = new Uint64(new Uint32Array([other.buffer[0], 0]));\n\n let product = Uint64.multiply(L3, R3);\n this.buffer[0] = product.low();\n\n let sum = new Uint64(new Uint32Array([product.high(), 0]));\n\n product = Uint64.multiply(L2, R3);\n sum.plus(product);\n\n product = Uint64.multiply(L3, R2);\n sum.plus(product);\n\n this.buffer[1] = sum.low();\n\n this.buffer[3] = (sum.lessThan(product) ? 1 : 0);\n\n this.buffer[2] = sum.high();\n let high = new Uint64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n\n high.plus(Uint64.multiply(L1, R3))\n .plus(Uint64.multiply(L2, R2))\n .plus(Uint64.multiply(L3, R1));\n this.buffer[3] += Uint64.multiply(L0, R3)\n .plus(Uint64.multiply(L1, R2))\n .plus(Uint64.multiply(L2, R1))\n .plus(Uint64.multiply(L3, R0)).low();\n\n return this;\n }\n\n public plus(other: Int128): Int128 {\n let sums = new Uint32Array(4);\n sums[3] = (this.buffer[3] + other.buffer[3]) >>> 0;\n sums[2] = (this.buffer[2] + other.buffer[2]) >>> 0;\n sums[1] = (this.buffer[1] + other.buffer[1]) >>> 0;\n sums[0] = (this.buffer[0] + other.buffer[0]) >>> 0;\n\n if (sums[0] < (this.buffer[0] >>> 0)) {\n ++sums[1];\n }\n if (sums[1] < (this.buffer[1] >>> 0)) {\n ++sums[2];\n }\n if (sums[2] < (this.buffer[2] >>> 0)) {\n ++sums[3];\n }\n\n this.buffer[3] = sums[3];\n this.buffer[2] = sums[2];\n this.buffer[1] = sums[1];\n this.buffer[0] = sums[0];\n\n return this;\n }\n\n public hex(): string {\n return `${intAsHex(this.buffer[3])} ${intAsHex(this.buffer[2])} ${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n\n /** @nocollapse */\n public static multiply(left: Int128, right: Int128): Int128 {\n let rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Int128, right: Int128): Int128 {\n let rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(4)): Int128 {\n return Int128.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(4)): Int128 {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Int128.fromString(num.toString(), out_buffer);\n }\n\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(4)): Int128 {\n // TODO: Assert that out_buffer is 0 and length = 4\n const negate = str.startsWith('-');\n const length = str.length;\n\n let out = new Int128(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int128(new Uint32Array([parseInt(str.substr(posn, group), 10), 0, 0, 0]));\n const multiple = new Int128(new Uint32Array([kPowersOfTen[group], 0, 0, 0]));\n\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n\n return negate ? out.negate() : out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\n // TODO: Distinguish between string and number at compile-time\n const data = new Uint32Array(values.length * 4);\n for (let i = -1, n = values.length; ++i < n;) {\n Int128.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 4 * 4 * i, 4));\n }\n return data;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport * as type from '../type';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { packBools } from '../util/bit';\nimport { encodeUtf8 } from '../util/utf8';\nimport { Int64, Int128 } from '../util/int';\nimport { UnionMode, DateUnit } from '../enum';\nimport { toArrayBufferView } from '../util/buffer';\nimport { BufferRegion, FieldNode } from '../ipc/metadata/message';\n\n/** @ignore */\nexport interface VectorLoader extends Visitor {\n visit(node: Field | T): Data;\n visitMany(nodes: (Field | T)[]): Data[];\n}\n\n/** @ignore */\nexport class VectorLoader extends Visitor {\n private bytes: Uint8Array;\n private nodes: FieldNode[];\n private nodesIndex: number = -1;\n private buffers: BufferRegion[];\n private buffersIndex: number = -1;\n private dictionaries: Map>;\n constructor(bytes: Uint8Array, nodes: FieldNode[], buffers: BufferRegion[], dictionaries: Map>) {\n super();\n this.bytes = bytes;\n this.nodes = nodes;\n this.buffers = buffers;\n this.dictionaries = dictionaries;\n }\n\n public visit(node: Field | T): Data {\n return super.visit(node instanceof Field ? node.type : node);\n }\n\n public visitNull (type: T, { length, } = this.nextFieldNode()) { return Data.Null(type, 0, length); }\n public visitBool (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Bool(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitInt (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Int(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFloat (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Float(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitUtf8 (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Utf8(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n public visitBinary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Binary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n public visitFixedSizeBinary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.FixedSizeBinary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDate (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Date(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTimestamp (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Timestamp(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTime (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Time(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDecimal (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Decimal(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitList (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.List(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n public visitStruct (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Struct(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visitMany(type.children)); }\n public visitUnion (type: T ) { return type.mode === UnionMode.Sparse ? this.visitSparseUnion(type as type.SparseUnion) : this.visitDenseUnion(type as type.DenseUnion); }\n public visitDenseUnion (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.readOffsets(type), this.visitMany(type.children)); }\n public visitSparseUnion (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.visitMany(type.children)); }\n public visitDictionary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Dictionary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type.indices), this.readDictionary(type)); }\n public visitInterval (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Interval(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFixedSizeList (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.FixedSizeList(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visit(type.children[0])); }\n public visitMap (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Map(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n\n protected nextFieldNode() { return this.nodes[++this.nodesIndex]; }\n protected nextBufferRange() { return this.buffers[++this.buffersIndex]; }\n protected readNullBitmap(type: T, nullCount: number, buffer = this.nextBufferRange()) {\n return nullCount > 0 && this.readData(type, buffer) || new Uint8Array(0);\n }\n protected readOffsets(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readTypeIds(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readData(_type: T, { length, offset } = this.nextBufferRange()) {\n return this.bytes.subarray(offset, offset + length);\n }\n protected readDictionary(type: T): Vector {\n return this.dictionaries.get(type.id)!;\n }\n}\n\n/** @ignore */\nexport class JSONVectorLoader extends VectorLoader {\n private sources: any[][];\n constructor(sources: any[][], nodes: FieldNode[], buffers: BufferRegion[], dictionaries: Map>) {\n super(new Uint8Array(0), nodes, buffers, dictionaries);\n this.sources = sources;\n }\n protected readNullBitmap(_type: T, nullCount: number, { offset } = this.nextBufferRange()) {\n return nullCount <= 0 ? new Uint8Array(0) : packBools(this.sources[offset]);\n }\n protected readOffsets(_type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(Int32Array, this.sources[offset]));\n }\n protected readTypeIds(type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, this.sources[offset]));\n }\n protected readData(type: T, { offset } = this.nextBufferRange()) {\n const { sources } = this;\n if (DataType.isTimestamp(type)) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if ((DataType.isInt(type) || DataType.isTime(type)) && type.bitWidth === 64) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if (DataType.isDate(type) && type.unit === DateUnit.MILLISECOND) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if (DataType.isDecimal(type)) {\n return toArrayBufferView(Uint8Array, Int128.convertArray(sources[offset] as string[]));\n } else if (DataType.isBinary(type) || DataType.isFixedSizeBinary(type)) {\n return binaryDataFromJSON(sources[offset] as string[]);\n } else if (DataType.isBool(type)) {\n return packBools(sources[offset] as number[]);\n } else if (DataType.isUtf8(type)) {\n return encodeUtf8((sources[offset] as string[]).join(''));\n }\n return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, sources[offset].map((x) => +x)));\n }\n}\n\n/** @ignore */\nfunction binaryDataFromJSON(values: string[]) {\n // \"DATA\": [\"49BC7D5B6C47D2\",\"3F5FB6D9322026\"]\n // There are definitely more efficient ways to do this... but it gets the\n // job done.\n const joined = values.join('');\n const data = new Uint8Array(joined.length / 2);\n for (let i = 0; i < joined.length; i += 2) {\n data[i >> 1] = parseInt(joined.substr(i, 2), 16);\n }\n return data;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport * as Schema_ from '../fb/Schema';\n\nimport * as type from '../type';\nimport { Visitor } from '../visitor';\n\nimport Null = Schema_.org.apache.arrow.flatbuf.Null;\nimport Int = Schema_.org.apache.arrow.flatbuf.Int;\nimport FloatingPoint = Schema_.org.apache.arrow.flatbuf.FloatingPoint;\nimport Binary = Schema_.org.apache.arrow.flatbuf.Binary;\nimport Bool = Schema_.org.apache.arrow.flatbuf.Bool;\nimport Utf8 = Schema_.org.apache.arrow.flatbuf.Utf8;\nimport Decimal = Schema_.org.apache.arrow.flatbuf.Decimal;\nimport Date = Schema_.org.apache.arrow.flatbuf.Date;\nimport Time = Schema_.org.apache.arrow.flatbuf.Time;\nimport Timestamp = Schema_.org.apache.arrow.flatbuf.Timestamp;\nimport Interval = Schema_.org.apache.arrow.flatbuf.Interval;\nimport List = Schema_.org.apache.arrow.flatbuf.List;\nimport Struct = Schema_.org.apache.arrow.flatbuf.Struct_;\nimport Union = Schema_.org.apache.arrow.flatbuf.Union;\nimport DictionaryEncoding = Schema_.org.apache.arrow.flatbuf.DictionaryEncoding;\nimport FixedSizeBinary = Schema_.org.apache.arrow.flatbuf.FixedSizeBinary;\nimport FixedSizeList = Schema_.org.apache.arrow.flatbuf.FixedSizeList;\nimport Map_ = Schema_.org.apache.arrow.flatbuf.Map;\n\n/** @ignore */\nexport interface TypeAssembler extends Visitor {\n visit(node: T, builder: Builder): number | undefined;\n}\n\n/** @ignore */\nexport class TypeAssembler extends Visitor {\n public visit(node: T, builder: Builder): number | undefined {\n return (node == null || builder == null) ? undefined : super.visit(node, builder);\n }\n public visitNull(_node: T, b: Builder) {\n Null.startNull(b);\n return Null.endNull(b);\n }\n public visitInt(node: T, b: Builder) {\n Int.startInt(b);\n Int.addBitWidth(b, node.bitWidth);\n Int.addIsSigned(b, node.isSigned);\n return Int.endInt(b);\n }\n public visitFloat(node: T, b: Builder) {\n FloatingPoint.startFloatingPoint(b);\n FloatingPoint.addPrecision(b, node.precision);\n return FloatingPoint.endFloatingPoint(b);\n }\n public visitBinary(_node: T, b: Builder) {\n Binary.startBinary(b);\n return Binary.endBinary(b);\n }\n public visitBool(_node: T, b: Builder) {\n Bool.startBool(b);\n return Bool.endBool(b);\n }\n public visitUtf8(_node: T, b: Builder) {\n Utf8.startUtf8(b);\n return Utf8.endUtf8(b);\n }\n public visitDecimal(node: T, b: Builder) {\n Decimal.startDecimal(b);\n Decimal.addScale(b, node.scale);\n Decimal.addPrecision(b, node.precision);\n return Decimal.endDecimal(b);\n }\n public visitDate(node: T, b: Builder) {\n Date.startDate(b);\n Date.addUnit(b, node.unit);\n return Date.endDate(b);\n }\n public visitTime(node: T, b: Builder) {\n Time.startTime(b);\n Time.addUnit(b, node.unit);\n Time.addBitWidth(b, node.bitWidth);\n return Time.endTime(b);\n }\n public visitTimestamp(node: T, b: Builder) {\n const timezone = (node.timezone && b.createString(node.timezone)) || undefined;\n Timestamp.startTimestamp(b);\n Timestamp.addUnit(b, node.unit);\n if (timezone !== undefined) {\n Timestamp.addTimezone(b, timezone);\n }\n return Timestamp.endTimestamp(b);\n }\n public visitInterval(node: T, b: Builder) {\n Interval.startInterval(b);\n Interval.addUnit(b, node.unit);\n return Interval.endInterval(b);\n }\n public visitList(_node: T, b: Builder) {\n List.startList(b);\n return List.endList(b);\n }\n public visitStruct(_node: T, b: Builder) {\n Struct.startStruct_(b);\n return Struct.endStruct_(b);\n }\n public visitUnion(node: T, b: Builder) {\n Union.startTypeIdsVector(b, node.typeIds.length);\n const typeIds = Union.createTypeIdsVector(b, node.typeIds);\n Union.startUnion(b);\n Union.addMode(b, node.mode);\n Union.addTypeIds(b, typeIds);\n return Union.endUnion(b);\n }\n public visitDictionary(node: T, b: Builder) {\n const indexType = this.visit(node.indices, b);\n DictionaryEncoding.startDictionaryEncoding(b);\n DictionaryEncoding.addId(b, new Long(node.id, 0));\n DictionaryEncoding.addIsOrdered(b, node.isOrdered);\n if (indexType !== undefined) {\n DictionaryEncoding.addIndexType(b, indexType);\n }\n return DictionaryEncoding.endDictionaryEncoding(b);\n }\n public visitFixedSizeBinary(node: T, b: Builder) {\n FixedSizeBinary.startFixedSizeBinary(b);\n FixedSizeBinary.addByteWidth(b, node.byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(b);\n }\n public visitFixedSizeList(node: T, b: Builder) {\n FixedSizeList.startFixedSizeList(b);\n FixedSizeList.addListSize(b, node.listSize);\n return FixedSizeList.endFixedSizeList(b);\n }\n public visitMap(node: T, b: Builder) {\n Map_.startMap(b);\n Map_.addKeysSorted(b, node.keysSorted);\n return Map_.endMap(b);\n }\n}\n\n/** @ignore */\nexport const instance = new TypeAssembler();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Schema, Field } from '../../schema';\nimport {\n DataType, Dictionary, TimeBitWidth,\n Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n Bool, Null, Int, Float, Date_, Time, Interval, Timestamp, IntBitWidth, Int32, TKeys,\n} from '../../type';\n\nimport { DictionaryBatch, RecordBatch, FieldNode, BufferRegion } from './message';\nimport { TimeUnit, Precision, IntervalUnit, UnionMode, DateUnit } from '../../enum';\n\n/** @ignore */\nexport function schemaFromJSON(_schema: any, dictionaries: Map = new Map()) {\n return new Schema(\n schemaFieldsFromJSON(_schema, dictionaries),\n customMetadataFromJSON(_schema['customMetadata']),\n dictionaries\n );\n}\n\n/** @ignore */\nexport function recordBatchFromJSON(b: any) {\n return new RecordBatch(\n b['count'],\n fieldNodesFromJSON(b['columns']),\n buffersFromJSON(b['columns'])\n );\n}\n\n/** @ignore */\nexport function dictionaryBatchFromJSON(b: any) {\n return new DictionaryBatch(\n recordBatchFromJSON(b['data']),\n b['id'], b['isDelta']\n );\n}\n\n/** @ignore */\nfunction schemaFieldsFromJSON(_schema: any, dictionaries?: Map) {\n return (_schema['fields'] || []).filter(Boolean).map((f: any) => Field.fromJSON(f, dictionaries));\n}\n\n/** @ignore */\nfunction fieldChildrenFromJSON(_field: any, dictionaries?: Map): Field[] {\n return (_field['children'] || []).filter(Boolean).map((f: any) => Field.fromJSON(f, dictionaries));\n}\n\n/** @ignore */\nfunction fieldNodesFromJSON(xs: any[]): FieldNode[] {\n return (xs || []).reduce((fieldNodes, column: any) => [\n ...fieldNodes,\n new FieldNode(\n column['count'],\n nullCountFromJSON(column['VALIDITY'])\n ),\n ...fieldNodesFromJSON(column['children'])\n ], [] as FieldNode[]);\n}\n\n/** @ignore */\nfunction buffersFromJSON(xs: any[], buffers: BufferRegion[] = []): BufferRegion[] {\n for (let i = -1, n = (xs || []).length; ++i < n;) {\n const column = xs[i];\n column['VALIDITY'] && buffers.push(new BufferRegion(buffers.length, column['VALIDITY'].length));\n column['TYPE'] && buffers.push(new BufferRegion(buffers.length, column['TYPE'].length));\n column['OFFSET'] && buffers.push(new BufferRegion(buffers.length, column['OFFSET'].length));\n column['DATA'] && buffers.push(new BufferRegion(buffers.length, column['DATA'].length));\n buffers = buffersFromJSON(column['children'], buffers);\n }\n return buffers;\n}\n\n/** @ignore */\nfunction nullCountFromJSON(validity: number[]) {\n return (validity || []).reduce((sum, val) => sum + +(val === 0), 0);\n}\n\n/** @ignore */\nexport function fieldFromJSON(_field: any, dictionaries?: Map) {\n\n let id: number;\n let keys: TKeys | null;\n let field: Field | void;\n let dictMeta: any;\n let type: DataType;\n let dictType: Dictionary;\n\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = _field['dictionary'])) {\n type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries));\n field = new Field(_field['name'], type, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n // tslint:disable\n // If dictionary encoded and the first time we've seen this dictionary id, decode\n // the data type and child fields, then wrap in a Dictionary type and insert the\n // data type into the dictionary types map.\n else if (!dictionaries.has(id = dictMeta['id'])) {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta['indexType']) ? indexTypeFromJSON(keys) as TKeys : new Int32();\n dictionaries.set(id, type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries)));\n dictType = new Dictionary(type, keys, id, dictMeta['isOrdered']);\n field = new Field(_field['name'], dictType, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n // If dictionary encoded, and have already seen this dictionary Id in the schema, then reuse the\n // data type and wrap in a new Dictionary type and field.\n else {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta['indexType']) ? indexTypeFromJSON(keys) as TKeys : new Int32();\n dictType = new Dictionary(dictionaries.get(id)!, keys, id, dictMeta['isOrdered']);\n field = new Field(_field['name'], dictType, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n return field || null;\n}\n\n/** @ignore */\nfunction customMetadataFromJSON(_metadata?: object) {\n return new Map(Object.entries(_metadata || {}));\n}\n\n/** @ignore */\nfunction indexTypeFromJSON(_type: any) {\n return new Int(_type['isSigned'], _type['bitWidth']);\n}\n\n/** @ignore */\nfunction typeFromJSON(f: any, children?: Field[]): DataType {\n\n const typeId = f['type']['name'];\n\n switch (typeId) {\n case 'NONE': return new Null();\n case 'null': return new Null();\n case 'binary': return new Binary();\n case 'utf8': return new Utf8();\n case 'bool': return new Bool();\n case 'list': return new List((children || [])[0]);\n case 'struct': return new Struct(children || []);\n case 'struct_': return new Struct(children || []);\n }\n\n switch (typeId) {\n case 'int': {\n const t = f['type'];\n return new Int(t['isSigned'], t['bitWidth'] as IntBitWidth);\n }\n case 'floatingpoint': {\n const t = f['type'];\n return new Float(Precision[t['precision']] as any);\n }\n case 'decimal': {\n const t = f['type'];\n return new Decimal(t['scale'], t['precision']);\n }\n case 'date': {\n const t = f['type'];\n return new Date_(DateUnit[t['unit']] as any);\n }\n case 'time': {\n const t = f['type'];\n return new Time(TimeUnit[t['unit']] as any, t['bitWidth'] as TimeBitWidth);\n }\n case 'timestamp': {\n const t = f['type'];\n return new Timestamp(TimeUnit[t['unit']] as any, t['timezone']);\n }\n case 'interval': {\n const t = f['type'];\n return new Interval(IntervalUnit[t['unit']] as any);\n }\n case 'union': {\n const t = f['type'];\n return new Union(UnionMode[t['mode']] as any, (t['typeIds'] || []), children || []);\n }\n case 'fixedsizebinary': {\n const t = f['type'];\n return new FixedSizeBinary(t['byteWidth']);\n }\n case 'fixedsizelist': {\n const t = f['type'];\n return new FixedSizeList(t['listSize'], (children || [])[0]);\n }\n case 'map': {\n const t = f['type'];\n return new Map_((children || [])[0], t['keysSorted']);\n }\n }\n throw new Error(`Unrecognized type: \"${typeId}\"`);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as Schema_ from '../../fb/Schema';\nimport * as Message_ from '../../fb/Message';\n\nimport { Schema, Field } from '../../schema';\nimport { toUint8Array } from '../../util/buffer';\nimport { ArrayBufferViewInput } from '../../util/buffer';\nimport { MessageHeader, MetadataVersion } from '../../enum';\nimport { instance as typeAssembler } from '../../visitor/typeassembler';\nimport { fieldFromJSON, schemaFromJSON, recordBatchFromJSON, dictionaryBatchFromJSON } from './json';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport _Int = Schema_.org.apache.arrow.flatbuf.Int;\nimport Type = Schema_.org.apache.arrow.flatbuf.Type;\nimport _Field = Schema_.org.apache.arrow.flatbuf.Field;\nimport _Schema = Schema_.org.apache.arrow.flatbuf.Schema;\nimport _Buffer = Schema_.org.apache.arrow.flatbuf.Buffer;\nimport _Message = Message_.org.apache.arrow.flatbuf.Message;\nimport _KeyValue = Schema_.org.apache.arrow.flatbuf.KeyValue;\nimport _FieldNode = Message_.org.apache.arrow.flatbuf.FieldNode;\nimport _Endianness = Schema_.org.apache.arrow.flatbuf.Endianness;\nimport _RecordBatch = Message_.org.apache.arrow.flatbuf.RecordBatch;\nimport _DictionaryBatch = Message_.org.apache.arrow.flatbuf.DictionaryBatch;\nimport _DictionaryEncoding = Schema_.org.apache.arrow.flatbuf.DictionaryEncoding;\n\nimport {\n DataType, Dictionary, TimeBitWidth,\n Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n Bool, Null, Int, Float, Date_, Time, Interval, Timestamp, IntBitWidth, Int32, TKeys,\n} from '../../type';\n\n/**\n * @ignore\n * @private\n **/\nexport class Message {\n\n /** @nocollapse */\n public static fromJSON(msg: any, headerType: T): Message {\n const message = new Message(0, MetadataVersion.V4, headerType);\n message._createHeader = messageHeaderFromJSON(msg, headerType);\n return message;\n }\n\n /** @nocollapse */\n public static decode(buf: ArrayBufferViewInput) {\n buf = new ByteBuffer(toUint8Array(buf));\n const _message = _Message.getRootAsMessage(buf);\n const bodyLength: Long = _message.bodyLength()!;\n const version: MetadataVersion = _message.version();\n const headerType: MessageHeader = _message.headerType();\n const message = new Message(bodyLength, version, headerType);\n message._createHeader = decodeMessageHeader(_message, headerType);\n return message;\n }\n\n /** @nocollapse */\n public static encode(message: Message) {\n let b = new Builder(), headerOffset = -1;\n if (message.isSchema()) {\n headerOffset = Schema.encode(b, message.header() as Schema);\n } else if (message.isRecordBatch()) {\n headerOffset = RecordBatch.encode(b, message.header() as RecordBatch);\n } else if (message.isDictionaryBatch()) {\n headerOffset = DictionaryBatch.encode(b, message.header() as DictionaryBatch);\n }\n _Message.startMessage(b);\n _Message.addVersion(b, MetadataVersion.V4);\n _Message.addHeader(b, headerOffset);\n _Message.addHeaderType(b, message.headerType);\n _Message.addBodyLength(b, new Long(message.bodyLength, 0));\n _Message.finishMessageBuffer(b, _Message.endMessage(b));\n return b.asUint8Array();\n }\n\n /** @nocollapse */\n public static from(header: Schema | RecordBatch | DictionaryBatch, bodyLength = 0) {\n if (header instanceof Schema) {\n return new Message(0, MetadataVersion.V4, MessageHeader.Schema, header);\n }\n if (header instanceof RecordBatch) {\n return new Message(bodyLength, MetadataVersion.V4, MessageHeader.RecordBatch, header);\n }\n if (header instanceof DictionaryBatch) {\n return new Message(bodyLength, MetadataVersion.V4, MessageHeader.DictionaryBatch, header);\n }\n throw new Error(`Unrecognized Message header: ${header}`);\n }\n\n // @ts-ignore\n public body: Uint8Array;\n protected _headerType: T;\n protected _bodyLength: number;\n protected _version: MetadataVersion;\n public get type() { return this.headerType; }\n public get version() { return this._version; }\n public get headerType() { return this._headerType; }\n public get bodyLength() { return this._bodyLength; }\n // @ts-ignore\n protected _createHeader: MessageHeaderDecoder;\n public header() { return this._createHeader(); }\n public isSchema(): this is Message { return this.headerType === MessageHeader.Schema; }\n public isRecordBatch(): this is Message { return this.headerType === MessageHeader.RecordBatch; }\n public isDictionaryBatch(): this is Message { return this.headerType === MessageHeader.DictionaryBatch; }\n\n constructor(bodyLength: Long | number, version: MetadataVersion, headerType: T, header?: any) {\n this._version = version;\n this._headerType = headerType;\n this.body = new Uint8Array(0);\n header && (this._createHeader = () => header);\n this._bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class RecordBatch {\n protected _length: number;\n protected _nodes: FieldNode[];\n protected _buffers: BufferRegion[];\n public get nodes() { return this._nodes; }\n public get length() { return this._length; }\n public get buffers() { return this._buffers; }\n constructor(length: Long | number, nodes: FieldNode[], buffers: BufferRegion[]) {\n this._nodes = nodes;\n this._buffers = buffers;\n this._length = typeof length === 'number' ? length : length.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class DictionaryBatch {\n\n protected _id: number;\n protected _isDelta: boolean;\n protected _data: RecordBatch;\n public get id() { return this._id; }\n public get data() { return this._data; }\n public get isDelta() { return this._isDelta; }\n public get length(): number { return this.data.length; }\n public get nodes(): FieldNode[] { return this.data.nodes; }\n public get buffers(): BufferRegion[] { return this.data.buffers; }\n\n constructor(data: RecordBatch, id: Long | number, isDelta: boolean = false) {\n this._data = data;\n this._isDelta = isDelta;\n this._id = typeof id === 'number' ? id : id.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class BufferRegion {\n public offset: number;\n public length: number;\n constructor(offset: Long | number, length: Long | number) {\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.length = typeof length === 'number' ? length : length.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class FieldNode {\n public length: number;\n public nullCount: number;\n constructor(length: Long | number, nullCount: Long | number) {\n this.length = typeof length === 'number' ? length : length.low;\n this.nullCount = typeof nullCount === 'number' ? nullCount : nullCount.low;\n }\n}\n\n/** @ignore */\nfunction messageHeaderFromJSON(message: any, type: MessageHeader) {\n return (() => {\n switch (type) {\n case MessageHeader.Schema: return Schema.fromJSON(message);\n case MessageHeader.RecordBatch: return RecordBatch.fromJSON(message);\n case MessageHeader.DictionaryBatch: return DictionaryBatch.fromJSON(message);\n }\n throw new Error(`Unrecognized Message type: { name: ${MessageHeader[type]}, type: ${type} }`);\n }) as MessageHeaderDecoder;\n}\n\n/** @ignore */\nfunction decodeMessageHeader(message: _Message, type: MessageHeader) {\n return (() => {\n switch (type) {\n case MessageHeader.Schema: return Schema.decode(message.header(new _Schema())!);\n case MessageHeader.RecordBatch: return RecordBatch.decode(message.header(new _RecordBatch())!, message.version());\n case MessageHeader.DictionaryBatch: return DictionaryBatch.decode(message.header(new _DictionaryBatch())!, message.version());\n }\n throw new Error(`Unrecognized Message type: { name: ${MessageHeader[type]}, type: ${type} }`);\n }) as MessageHeaderDecoder;\n}\n\nField['encode'] = encodeField;\nField['decode'] = decodeField;\nField['fromJSON'] = fieldFromJSON;\n\nSchema['encode'] = encodeSchema;\nSchema['decode'] = decodeSchema;\nSchema['fromJSON'] = schemaFromJSON;\n\nRecordBatch['encode'] = encodeRecordBatch;\nRecordBatch['decode'] = decodeRecordBatch;\nRecordBatch['fromJSON'] = recordBatchFromJSON;\n\nDictionaryBatch['encode'] = encodeDictionaryBatch;\nDictionaryBatch['decode'] = decodeDictionaryBatch;\nDictionaryBatch['fromJSON'] = dictionaryBatchFromJSON;\n\nFieldNode['encode'] = encodeFieldNode;\nFieldNode['decode'] = decodeFieldNode;\n\nBufferRegion['encode'] = encodeBufferRegion;\nBufferRegion['decode'] = decodeBufferRegion;\n\ndeclare module '../../schema' {\n namespace Field {\n export { encodeField as encode };\n export { decodeField as decode };\n export { fieldFromJSON as fromJSON };\n }\n namespace Schema {\n export { encodeSchema as encode };\n export { decodeSchema as decode };\n export { schemaFromJSON as fromJSON };\n }\n}\n\ndeclare module './message' {\n namespace RecordBatch {\n export { encodeRecordBatch as encode };\n export { decodeRecordBatch as decode };\n export { recordBatchFromJSON as fromJSON };\n }\n namespace DictionaryBatch {\n export { encodeDictionaryBatch as encode };\n export { decodeDictionaryBatch as decode };\n export { dictionaryBatchFromJSON as fromJSON };\n }\n namespace FieldNode {\n export { encodeFieldNode as encode };\n export { decodeFieldNode as decode };\n }\n namespace BufferRegion {\n export { encodeBufferRegion as encode };\n export { decodeBufferRegion as decode };\n }\n}\n\n/** @ignore */\nfunction decodeSchema(_schema: _Schema, dictionaries: Map = new Map()) {\n const fields = decodeSchemaFields(_schema, dictionaries);\n return new Schema(fields, decodeCustomMetadata(_schema), dictionaries);\n}\n\n/** @ignore */\nfunction decodeRecordBatch(batch: _RecordBatch, version = MetadataVersion.V4) {\n return new RecordBatch(batch.length(), decodeFieldNodes(batch), decodeBuffers(batch, version));\n}\n\n/** @ignore */\nfunction decodeDictionaryBatch(batch: _DictionaryBatch, version = MetadataVersion.V4) {\n return new DictionaryBatch(RecordBatch.decode(batch.data()!, version), batch.id(), batch.isDelta());\n}\n\n/** @ignore */\nfunction decodeBufferRegion(b: _Buffer) {\n return new BufferRegion(b.offset(), b.length());\n}\n\n/** @ignore */\nfunction decodeFieldNode(f: _FieldNode) {\n return new FieldNode(f.length(), f.nullCount());\n}\n\n/** @ignore */\nfunction decodeFieldNodes(batch: _RecordBatch) {\n const nodes = [] as FieldNode[];\n for (let f, i = -1, j = -1, n = batch.nodesLength(); ++i < n;) {\n if (f = batch.nodes(i)) {\n nodes[++j] = FieldNode.decode(f);\n }\n }\n return nodes;\n}\n\n/** @ignore */\nfunction decodeBuffers(batch: _RecordBatch, version: MetadataVersion) {\n const bufferRegions = [] as BufferRegion[];\n for (let b, i = -1, j = -1, n = batch.buffersLength(); ++i < n;) {\n if (b = batch.buffers(i)) {\n // If this Arrow buffer was written before version 4,\n // advance the buffer's bb_pos 8 bytes to skip past\n // the now-removed page_id field\n if (version < MetadataVersion.V4) {\n b.bb_pos += (8 * (i + 1));\n }\n bufferRegions[++j] = BufferRegion.decode(b);\n }\n }\n return bufferRegions;\n}\n\n/** @ignore */\nfunction decodeSchemaFields(schema: _Schema, dictionaries?: Map) {\n const fields = [] as Field[];\n for (let f, i = -1, j = -1, n = schema.fieldsLength(); ++i < n;) {\n if (f = schema.fields(i)) {\n fields[++j] = Field.decode(f, dictionaries);\n }\n }\n return fields;\n}\n\n/** @ignore */\nfunction decodeFieldChildren(field: _Field, dictionaries?: Map): Field[] {\n const children = [] as Field[];\n for (let f, i = -1, j = -1, n = field.childrenLength(); ++i < n;) {\n if (f = field.children(i)) {\n children[++j] = Field.decode(f, dictionaries);\n }\n }\n return children;\n}\n\n/** @ignore */\nfunction decodeField(f: _Field, dictionaries?: Map) {\n\n let id: number;\n let field: Field | void;\n let type: DataType;\n let keys: _Int | TKeys | null;\n let dictType: Dictionary;\n let dictMeta: _DictionaryEncoding | null;\n\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = f.dictionary())) {\n type = decodeFieldType(f, decodeFieldChildren(f, dictionaries));\n field = new Field(f.name()!, type, f.nullable(), decodeCustomMetadata(f));\n }\n // tslint:disable\n // If dictionary encoded and the first time we've seen this dictionary id, decode\n // the data type and child fields, then wrap in a Dictionary type and insert the\n // data type into the dictionary types map.\n else if (!dictionaries.has(id = dictMeta.id().low)) {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta.indexType()) ? decodeIndexType(keys) as TKeys : new Int32();\n dictionaries.set(id, type = decodeFieldType(f, decodeFieldChildren(f, dictionaries)));\n dictType = new Dictionary(type, keys, id, dictMeta.isOrdered());\n field = new Field(f.name()!, dictType, f.nullable(), decodeCustomMetadata(f));\n }\n // If dictionary encoded, and have already seen this dictionary Id in the schema, then reuse the\n // data type and wrap in a new Dictionary type and field.\n else {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta.indexType()) ? decodeIndexType(keys) as TKeys : new Int32();\n dictType = new Dictionary(dictionaries.get(id)!, keys, id, dictMeta.isOrdered());\n field = new Field(f.name()!, dictType, f.nullable(), decodeCustomMetadata(f));\n }\n return field || null;\n}\n\n/** @ignore */\nfunction decodeCustomMetadata(parent?: _Schema | _Field | null) {\n const data = new Map();\n if (parent) {\n for (let entry, key, i = -1, n = parent.customMetadataLength() | 0; ++i < n;) {\n if ((entry = parent.customMetadata(i)) && (key = entry.key()) != null) {\n data.set(key, entry.value()!);\n }\n }\n }\n return data;\n}\n\n/** @ignore */\nfunction decodeIndexType(_type: _Int) {\n return new Int(_type.isSigned(), _type.bitWidth() as IntBitWidth);\n}\n\n/** @ignore */\nfunction decodeFieldType(f: _Field, children?: Field[]): DataType {\n\n const typeId = f.typeType();\n\n switch (typeId) {\n case Type.NONE: return new Null();\n case Type.Null: return new Null();\n case Type.Binary: return new Binary();\n case Type.Utf8: return new Utf8();\n case Type.Bool: return new Bool();\n case Type.List: return new List((children || [])[0]);\n case Type.Struct_: return new Struct(children || []);\n }\n\n switch (typeId) {\n case Type.Int: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Int())!;\n return new Int(t.isSigned(), t.bitWidth());\n }\n case Type.FloatingPoint: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FloatingPoint())!;\n return new Float(t.precision());\n }\n case Type.Decimal: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Decimal())!;\n return new Decimal(t.scale(), t.precision());\n }\n case Type.Date: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Date())!;\n return new Date_(t.unit());\n }\n case Type.Time: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Time())!;\n return new Time(t.unit(), t.bitWidth() as TimeBitWidth);\n }\n case Type.Timestamp: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Timestamp())!;\n return new Timestamp(t.unit(), t.timezone());\n }\n case Type.Interval: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Interval())!;\n return new Interval(t.unit());\n }\n case Type.Union: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Union())!;\n return new Union(t.mode(), t.typeIdsArray() || [], children || []);\n }\n case Type.FixedSizeBinary: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FixedSizeBinary())!;\n return new FixedSizeBinary(t.byteWidth());\n }\n case Type.FixedSizeList: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FixedSizeList())!;\n return new FixedSizeList(t.listSize(), (children || [])[0]);\n }\n case Type.Map: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Map())!;\n return new Map_((children || [])[0], t.keysSorted());\n }\n }\n throw new Error(`Unrecognized type: \"${Type[typeId]}\" (${typeId})`);\n}\n\n/** @ignore */\nfunction encodeSchema(b: Builder, schema: Schema) {\n\n const fieldOffsets = schema.fields.map((f) => Field.encode(b, f));\n\n _Schema.startFieldsVector(b, fieldOffsets.length);\n\n const fieldsVectorOffset = _Schema.createFieldsVector(b, fieldOffsets);\n\n const metadataOffset = !(schema.metadata && schema.metadata.size > 0) ? -1 :\n _Schema.createCustomMetadataVector(b, [...schema.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n _KeyValue.startKeyValue(b);\n _KeyValue.addKey(b, key);\n _KeyValue.addValue(b, val);\n return _KeyValue.endKeyValue(b);\n }));\n\n _Schema.startSchema(b);\n _Schema.addFields(b, fieldsVectorOffset);\n _Schema.addEndianness(b, platformIsLittleEndian ? _Endianness.Little : _Endianness.Big);\n\n if (metadataOffset !== -1) { _Schema.addCustomMetadata(b, metadataOffset); }\n\n return _Schema.endSchema(b);\n}\n\n/** @ignore */\nfunction encodeField(b: Builder, field: Field) {\n\n let nameOffset = -1;\n let typeOffset = -1;\n let dictionaryOffset = -1;\n\n let type = field.type;\n let typeId: Type = field.typeId;\n\n if (!DataType.isDictionary(type)) {\n typeOffset = typeAssembler.visit(type, b)!;\n } else {\n typeId = type.dictionary.typeId;\n dictionaryOffset = typeAssembler.visit(type, b)!;\n typeOffset = typeAssembler.visit(type.dictionary, b)!;\n }\n\n const childOffsets = (type.children || []).map((f: Field) => Field.encode(b, f));\n const childrenVectorOffset = _Field.createChildrenVector(b, childOffsets);\n\n const metadataOffset = !(field.metadata && field.metadata.size > 0) ? -1 :\n _Field.createCustomMetadataVector(b, [...field.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n _KeyValue.startKeyValue(b);\n _KeyValue.addKey(b, key);\n _KeyValue.addValue(b, val);\n return _KeyValue.endKeyValue(b);\n }));\n\n if (field.name) {\n nameOffset = b.createString(field.name);\n }\n\n _Field.startField(b);\n _Field.addType(b, typeOffset);\n _Field.addTypeType(b, typeId);\n _Field.addChildren(b, childrenVectorOffset);\n _Field.addNullable(b, !!field.nullable);\n\n if (nameOffset !== -1) { _Field.addName(b, nameOffset); }\n if (dictionaryOffset !== -1) { _Field.addDictionary(b, dictionaryOffset); }\n if (metadataOffset !== -1) { _Field.addCustomMetadata(b, metadataOffset); }\n\n return _Field.endField(b);\n}\n\n/** @ignore */\nfunction encodeRecordBatch(b: Builder, recordBatch: RecordBatch) {\n\n const nodes = recordBatch.nodes || [];\n const buffers = recordBatch.buffers || [];\n\n _RecordBatch.startNodesVector(b, nodes.length);\n nodes.slice().reverse().forEach((n) => FieldNode.encode(b, n));\n\n const nodesVectorOffset = b.endVector();\n\n _RecordBatch.startBuffersVector(b, buffers.length);\n buffers.slice().reverse().forEach((b_) => BufferRegion.encode(b, b_));\n\n const buffersVectorOffset = b.endVector();\n\n _RecordBatch.startRecordBatch(b);\n _RecordBatch.addLength(b, new Long(recordBatch.length, 0));\n _RecordBatch.addNodes(b, nodesVectorOffset);\n _RecordBatch.addBuffers(b, buffersVectorOffset);\n return _RecordBatch.endRecordBatch(b);\n}\n\n/** @ignore */\nfunction encodeDictionaryBatch(b: Builder, dictionaryBatch: DictionaryBatch) {\n const dataOffset = RecordBatch.encode(b, dictionaryBatch.data);\n _DictionaryBatch.startDictionaryBatch(b);\n _DictionaryBatch.addId(b, new Long(dictionaryBatch.id, 0));\n _DictionaryBatch.addIsDelta(b, dictionaryBatch.isDelta);\n _DictionaryBatch.addData(b, dataOffset);\n return _DictionaryBatch.endDictionaryBatch(b);\n}\n\n/** @ignore */\nfunction encodeFieldNode(b: Builder, node: FieldNode) {\n return _FieldNode.createFieldNode(b, new Long(node.length, 0), new Long(node.nullCount, 0));\n}\n\n/** @ignore */\nfunction encodeBufferRegion(b: Builder, node: BufferRegion) {\n return _Buffer.createBuffer(b, new Long(node.offset, 0), new Long(node.length, 0));\n}\n\n/** @ignore */\nconst platformIsLittleEndian = (function() {\n const buffer = new ArrayBuffer(2);\n new DataView(buffer).setInt16(0, 256, true /* littleEndian */);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] === 256;\n})();\n\n/** @ignore */\ntype MessageHeaderDecoder = () => T extends MessageHeader.Schema ? Schema\n : T extends MessageHeader.RecordBatch ? RecordBatch\n : T extends MessageHeader.DictionaryBatch ? DictionaryBatch : never;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { MessageHeader } from '../enum';\nimport { flatbuffers } from 'flatbuffers';\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport { Message } from './metadata/message';\nimport { isFileHandle } from '../util/compat';\nimport { AsyncRandomAccessFile } from '../io/file';\nimport { toUint8Array, ArrayBufferViewInput } from '../util/buffer';\nimport { ByteStream, ReadableSource, AsyncByteStream } from '../io/stream';\nimport { ArrowJSON, ArrowJSONLike, ITERATOR_DONE, FileHandle } from '../io/interfaces';\n\n/** @ignore */ const invalidMessageType = (type: MessageHeader) => `Expected ${MessageHeader[type]} Message in stream, but was null or length 0.`;\n/** @ignore */ const nullMessage = (type: MessageHeader) => `Header pointer of flatbuffer-encoded ${MessageHeader[type]} Message is null or length 0.`;\n/** @ignore */ const invalidMessageMetadata = (expected: number, actual: number) => `Expected to read ${expected} metadata bytes, but only read ${actual}.`;\n/** @ignore */ const invalidMessageBodyLength = (expected: number, actual: number) => `Expected to read ${expected} bytes for message body, but only read ${actual}.`;\n\n/** @ignore */\nexport class MessageReader implements IterableIterator {\n protected source: ByteStream;\n constructor(source: ByteStream | ArrayBufferViewInput | Iterable) {\n this.source = source instanceof ByteStream ? source : new ByteStream(source);\n }\n public [Symbol.iterator](): IterableIterator { return this as IterableIterator; }\n public next(): IteratorResult {\n let r;\n if ((r = this.readMetadataLength()).done) { return ITERATOR_DONE; }\n // ARROW-6313: If the first 4 bytes are continuation indicator (-1), read\n // the next 4 for the 32-bit metadata length. Otherwise, assume this is a\n // pre-v0.15 message, where the first 4 bytes are the metadata length.\n if ((r.value === -1) &&\n (r = this.readMetadataLength()).done) { return ITERATOR_DONE; }\n if ((r = this.readMetadata(r.value)).done) { return ITERATOR_DONE; }\n return ( r) as IteratorResult;\n }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public readMessageBody(bodyLength: number): Uint8Array {\n if (bodyLength <= 0) { return new Uint8Array(0); }\n const buf = toUint8Array(this.source.read(bodyLength));\n if (buf.byteLength < bodyLength) {\n throw new Error(invalidMessageBodyLength(bodyLength, buf.byteLength));\n }\n // 1. Work around bugs in fs.ReadStream's internal Buffer pooling, see: https://github.com/nodejs/node/issues/24817\n // 2. Work around https://github.com/whatwg/streams/blob/0ebe4b042e467d9876d80ae045de3843092ad797/reference-implementation/lib/helpers.js#L126\n return /* 1. */ (buf.byteOffset % 8 === 0) &&\n /* 2. */ (buf.byteOffset + buf.byteLength) <= buf.buffer.byteLength ? buf : buf.slice();\n }\n public readSchema(throwIfNull = false) {\n const type = MessageHeader.Schema;\n const message = this.readMessage(type);\n const schema = message && message.header();\n if (throwIfNull && !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n protected readMetadataLength(): IteratorResult {\n const buf = this.source.read(PADDING);\n const bb = buf && new ByteBuffer(buf);\n const len = bb && bb.readInt32(0) || 0;\n return { done: len === 0, value: len };\n }\n protected readMetadata(metadataLength: number): IteratorResult {\n const buf = this.source.read(metadataLength);\n if (!buf) { return ITERATOR_DONE; }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: Message.decode(buf) };\n }\n}\n\n/** @ignore */\nexport class AsyncMessageReader implements AsyncIterableIterator {\n protected source: AsyncByteStream;\n constructor(source: ReadableSource);\n constructor(source: FileHandle, byteLength?: number);\n constructor(source: any, byteLength?: number) {\n this.source = source instanceof AsyncByteStream ? source\n : isFileHandle(source)\n ? new AsyncRandomAccessFile(source, byteLength!)\n : new AsyncByteStream(source);\n }\n public [Symbol.asyncIterator](): AsyncIterableIterator { return this as AsyncIterableIterator; }\n public async next(): Promise> {\n let r;\n if ((r = await this.readMetadataLength()).done) { return ITERATOR_DONE; }\n // ARROW-6313: If the first 4 bytes are continuation indicator (-1), read\n // the next 4 for the 32-bit metadata length. Otherwise, assume this is a\n // pre-v0.15 message, where the first 4 bytes are the metadata length.\n if ((r.value === -1) &&\n (r = await this.readMetadataLength()).done) { return ITERATOR_DONE; }\n if ((r = await this.readMetadata(r.value)).done) { return ITERATOR_DONE; }\n return ( r) as IteratorResult;\n }\n public async throw(value?: any) { return await this.source.throw(value); }\n public async return(value?: any) { return await this.source.return(value); }\n public async readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = await this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public async readMessageBody(bodyLength: number): Promise {\n if (bodyLength <= 0) { return new Uint8Array(0); }\n const buf = toUint8Array(await this.source.read(bodyLength));\n if (buf.byteLength < bodyLength) {\n throw new Error(invalidMessageBodyLength(bodyLength, buf.byteLength));\n }\n // 1. Work around bugs in fs.ReadStream's internal Buffer pooling, see: https://github.com/nodejs/node/issues/24817\n // 2. Work around https://github.com/whatwg/streams/blob/0ebe4b042e467d9876d80ae045de3843092ad797/reference-implementation/lib/helpers.js#L126\n return /* 1. */ (buf.byteOffset % 8 === 0) &&\n /* 2. */ (buf.byteOffset + buf.byteLength) <= buf.buffer.byteLength ? buf : buf.slice();\n }\n public async readSchema(throwIfNull = false) {\n const type = MessageHeader.Schema;\n const message = await this.readMessage(type);\n const schema = message && message.header();\n if (throwIfNull && !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n protected async readMetadataLength(): Promise> {\n const buf = await this.source.read(PADDING);\n const bb = buf && new ByteBuffer(buf);\n const len = bb && bb.readInt32(0) || 0;\n return { done: len === 0, value: len };\n }\n protected async readMetadata(metadataLength: number): Promise> {\n const buf = await this.source.read(metadataLength);\n if (!buf) { return ITERATOR_DONE; }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: Message.decode(buf) };\n }\n}\n\n/** @ignore */\nexport class JSONMessageReader extends MessageReader {\n private _schema = false;\n private _json: ArrowJSON;\n private _body: any[] = [];\n private _batchIndex = 0;\n private _dictionaryIndex = 0;\n constructor(source: ArrowJSON | ArrowJSONLike) {\n super(new Uint8Array(0));\n this._json = source instanceof ArrowJSON ? source : new ArrowJSON(source);\n }\n public next() {\n const { _json } = this;\n if (!this._schema) {\n this._schema = true;\n const message = Message.fromJSON(_json.schema, MessageHeader.Schema);\n return { done: false, value: message };\n }\n if (this._dictionaryIndex < _json.dictionaries.length) {\n const batch = _json.dictionaries[this._dictionaryIndex++];\n this._body = batch['data']['columns'];\n const message = Message.fromJSON(batch, MessageHeader.DictionaryBatch);\n return { done: false, value: message };\n }\n if (this._batchIndex < _json.batches.length) {\n const batch = _json.batches[this._batchIndex++];\n this._body = batch['columns'];\n const message = Message.fromJSON(batch, MessageHeader.RecordBatch);\n return { done: false, value: message };\n }\n this._body = [];\n return ITERATOR_DONE;\n }\n public readMessageBody(_bodyLength?: number) {\n return flattenDataSources(this._body) as any;\n function flattenDataSources(xs: any[]): any[][] {\n return (xs || []).reduce((buffers, column: any) => [\n ...buffers,\n ...(column['VALIDITY'] && [column['VALIDITY']] || []),\n ...(column['TYPE'] && [column['TYPE']] || []),\n ...(column['OFFSET'] && [column['OFFSET']] || []),\n ...(column['DATA'] && [column['DATA']] || []),\n ...flattenDataSources(column['children'])\n ], [] as any[][]);\n }\n }\n public readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public readSchema() {\n const type = MessageHeader.Schema;\n const message = this.readMessage(type);\n const schema = message && message.header();\n if (!message || !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n}\n\n/** @ignore */\nexport const PADDING = 4;\n/** @ignore */\nexport const MAGIC_STR = 'ARROW1';\n/** @ignore */\nexport const MAGIC = new Uint8Array(MAGIC_STR.length);\n\nfor (let i = 0; i < MAGIC_STR.length; i += 1 | 0) {\n MAGIC[i] = MAGIC_STR.charCodeAt(i);\n}\n\n/** @ignore */\nexport function checkForMagicArrowString(buffer: Uint8Array, index = 0) {\n for (let i = -1, n = MAGIC.length; ++i < n;) {\n if (MAGIC[i] !== buffer[index + i]) {\n return false;\n }\n }\n return true;\n}\n\n/** @ignore */\nexport const magicLength = MAGIC.length;\n/** @ignore */\nexport const magicAndPadding = magicLength + PADDING;\n/** @ignore */\nexport const magicX2AndPadding = magicLength * 2 + PADDING;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Visitor } from '../visitor';\nimport { Type, UnionMode } from '../enum';\nimport { RecordBatch } from '../recordbatch';\nimport { VectorType as V } from '../interfaces';\nimport { rebaseValueOffsets } from '../util/buffer';\nimport { packBools, truncateBitmap } from '../util/bit';\nimport { selectVectorChildrenArgs } from '../util/args';\nimport { BufferRegion, FieldNode } from '../ipc/metadata/message';\nimport {\n DataType, Dictionary,\n Float, Int, Date_, Interval, Time, Timestamp, Union,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n} from '../type';\n\n/** @ignore */\nexport interface VectorAssembler extends Visitor {\n visit(node: T): this;\n visitMany(nodes: T[]): this[];\n getVisitFn(node: T): (vector: V) => this;\n getVisitFn(node: V | Data | T): (vector: V) => this;\n\n visitBool (vector: V): this;\n visitInt (vector: V): this;\n visitFloat (vector: V): this;\n visitUtf8 (vector: V): this;\n visitBinary (vector: V): this;\n visitFixedSizeBinary (vector: V): this;\n visitDate (vector: V): this;\n visitTimestamp (vector: V): this;\n visitTime (vector: V): this;\n visitDecimal (vector: V): this;\n visitList (vector: V): this;\n visitStruct (vector: V): this;\n visitUnion (vector: V): this;\n visitInterval (vector: V): this;\n visitFixedSizeList (vector: V): this;\n visitMap (vector: V): this;\n}\n\n/** @ignore */\nexport class VectorAssembler extends Visitor {\n\n /** @nocollapse */\n public static assemble(...args: (T | T[])[]) {\n const assembler = new VectorAssembler();\n const vectorChildren = selectVectorChildrenArgs(RecordBatch, args);\n const [assembleResult = assembler] = assembler.visitMany(vectorChildren);\n return assembleResult;\n }\n\n private constructor() { super(); }\n\n public visit(vector: T): this {\n if (!DataType.isDictionary(vector.type)) {\n const { data, length, nullCount } = vector;\n if (length > 2147483647) {\n /* istanbul ignore next */\n throw new RangeError('Cannot write arrays larger than 2^31 - 1 in length');\n }\n if (!DataType.isNull(vector.type)) {\n addBuffer.call(this, nullCount <= 0\n ? new Uint8Array(0) // placeholder validity buffer\n : truncateBitmap(data.offset, length, data.nullBitmap)\n );\n }\n this.nodes.push(new FieldNode(length, nullCount));\n }\n return super.visit(vector);\n }\n\n public visitNull(_nullV: V) {\n return this;\n }\n public visitDictionary(vector: V) {\n // Assemble the indices here, Dictionary assembled separately.\n return this.visit(vector.indices);\n }\n\n public get nodes() { return this._nodes; }\n public get buffers() { return this._buffers; }\n public get byteLength() { return this._byteLength; }\n public get bufferRegions() { return this._bufferRegions; }\n\n protected _byteLength = 0;\n protected _nodes: FieldNode[] = [];\n protected _buffers: ArrayBufferView[] = [];\n protected _bufferRegions: BufferRegion[] = [];\n}\n\n/** @ignore */\nfunction addBuffer(this: VectorAssembler, values: ArrayBufferView) {\n const byteLength = (values.byteLength + 7) & ~7; // Round up to a multiple of 8\n this.buffers.push(values);\n this.bufferRegions.push(new BufferRegion(this._byteLength, byteLength));\n this._byteLength += byteLength;\n return this;\n}\n\n/** @ignore */\nfunction assembleUnion(this: VectorAssembler, vector: V) {\n const { type, length, typeIds, valueOffsets } = vector;\n // All Union Vectors have a typeIds buffer\n addBuffer.call(this, typeIds);\n // If this is a Sparse Union, treat it like all other Nested types\n if (type.mode === UnionMode.Sparse) {\n return assembleNestedVector.call(this, vector);\n } else if (type.mode === UnionMode.Dense) {\n // If this is a Dense Union, add the valueOffsets buffer and potentially slice the children\n if (vector.offset <= 0) {\n // If the Vector hasn't been sliced, write the existing valueOffsets\n addBuffer.call(this, valueOffsets);\n // We can treat this like all other Nested types\n return assembleNestedVector.call(this, vector);\n } else {\n // A sliced Dense Union is an unpleasant case. Because the offsets are different for\n // each child vector, we need to \"rebase\" the valueOffsets for each child\n // Union typeIds are not necessary 0-indexed\n const maxChildTypeId = typeIds.reduce((x, y) => Math.max(x, y), typeIds[0]);\n const childLengths = new Int32Array(maxChildTypeId + 1);\n // Set all to -1 to indicate that we haven't observed a first occurrence of a particular child yet\n const childOffsets = new Int32Array(maxChildTypeId + 1).fill(-1);\n const shiftedOffsets = new Int32Array(length);\n // If we have a non-zero offset, then the value offsets do not start at\n // zero. We must a) create a new offsets array with shifted offsets and\n // b) slice the values array accordingly\n const unshiftedOffsets = rebaseValueOffsets(-valueOffsets[0], length, valueOffsets);\n for (let typeId, shift, index = -1; ++index < length;) {\n if ((shift = childOffsets[typeId = typeIds[index]]) === -1) {\n shift = childOffsets[typeId] = unshiftedOffsets[typeId];\n }\n shiftedOffsets[index] = unshiftedOffsets[index] - shift;\n ++childLengths[typeId];\n }\n addBuffer.call(this, shiftedOffsets);\n // Slice and visit children accordingly\n for (let child: Vector | null, childIndex = -1, numChildren = type.children.length; ++childIndex < numChildren;) {\n if (child = vector.getChildAt(childIndex)) {\n const typeId = type.typeIds[childIndex];\n const childLength = Math.min(length, childLengths[typeId]);\n this.visit(child.slice(childOffsets[typeId], childLength));\n }\n }\n }\n }\n return this;\n}\n\n/** @ignore */\nfunction assembleBoolVector(this: VectorAssembler, vector: V) {\n // Bool vector is a special case of FlatVector, as its data buffer needs to stay packed\n let values: Uint8Array;\n if (vector.nullCount >= vector.length) {\n // If all values are null, just insert a placeholder empty data buffer (fastest path)\n return addBuffer.call(this, new Uint8Array(0));\n } else if ((values = vector.values) instanceof Uint8Array) {\n // If values is already a Uint8Array, slice the bitmap (fast path)\n return addBuffer.call(this, truncateBitmap(vector.offset, vector.length, values));\n }\n // Otherwise if the underlying data *isn't* a Uint8Array, enumerate the\n // values as bools and re-pack them into a Uint8Array. This code isn't\n // reachable unless you're trying to manipulate the Data internals,\n // we we're only doing this for safety.\n /* istanbul ignore next */\n return addBuffer.call(this, packBools(vector));\n}\n\n/** @ignore */\nfunction assembleFlatVector(this: VectorAssembler, vector: V) {\n return addBuffer.call(this, vector.values.subarray(0, vector.length * vector.stride));\n}\n\n/** @ignore */\nfunction assembleFlatListVector(this: VectorAssembler, vector: V) {\n const { length, values, valueOffsets } = vector;\n const firstOffset = valueOffsets[0];\n const lastOffset = valueOffsets[length];\n const byteLength = Math.min(lastOffset - firstOffset, values.byteLength - firstOffset);\n // Push in the order FlatList types read their buffers\n addBuffer.call(this, rebaseValueOffsets(-valueOffsets[0], length, valueOffsets)); // valueOffsets buffer first\n addBuffer.call(this, values.subarray(firstOffset, firstOffset + byteLength)); // sliced values buffer second\n return this;\n}\n\n/** @ignore */\nfunction assembleListVector(this: VectorAssembler, vector: V) {\n const { length, valueOffsets } = vector;\n // If we have valueOffsets (MapVector, ListVector), push that buffer first\n if (valueOffsets) {\n addBuffer.call(this, rebaseValueOffsets(valueOffsets[0], length, valueOffsets));\n }\n // Then insert the List's values child\n return this.visit(vector.getChildAt(0)!);\n}\n\n/** @ignore */\nfunction assembleNestedVector(this: VectorAssembler, vector: V) {\n return this.visitMany(vector.type.children.map((_, i) => vector.getChildAt(i)!).filter(Boolean))[0];\n}\n\nVectorAssembler.prototype.visitBool = assembleBoolVector;\nVectorAssembler.prototype.visitInt = assembleFlatVector;\nVectorAssembler.prototype.visitFloat = assembleFlatVector;\nVectorAssembler.prototype.visitUtf8 = assembleFlatListVector;\nVectorAssembler.prototype.visitBinary = assembleFlatListVector;\nVectorAssembler.prototype.visitFixedSizeBinary = assembleFlatVector;\nVectorAssembler.prototype.visitDate = assembleFlatVector;\nVectorAssembler.prototype.visitTimestamp = assembleFlatVector;\nVectorAssembler.prototype.visitTime = assembleFlatVector;\nVectorAssembler.prototype.visitDecimal = assembleFlatVector;\nVectorAssembler.prototype.visitList = assembleListVector;\nVectorAssembler.prototype.visitStruct = assembleNestedVector;\nVectorAssembler.prototype.visitUnion = assembleUnion;\nVectorAssembler.prototype.visitInterval = assembleFlatVector;\nVectorAssembler.prototype.visitFixedSizeList = assembleListVector;\nVectorAssembler.prototype.visitMap = assembleListVector;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Table } from '../table';\nimport { MAGIC } from './message';\nimport { Vector } from '../vector';\nimport { Column } from '../column';\nimport { DataType } from '../type';\nimport { Schema, Field } from '../schema';\nimport { Message } from './metadata/message';\nimport * as metadata from './metadata/message';\nimport { FileBlock, Footer } from './metadata/file';\nimport { MessageHeader, MetadataVersion } from '../enum';\nimport { WritableSink, AsyncByteQueue } from '../io/stream';\nimport { VectorAssembler } from '../visitor/vectorassembler';\nimport { JSONTypeAssembler } from '../visitor/jsontypeassembler';\nimport { JSONVectorAssembler } from '../visitor/jsonvectorassembler';\nimport { ArrayBufferViewInput, toUint8Array } from '../util/buffer';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from '../recordbatch';\nimport { Writable, ReadableInterop, ReadableDOMStreamOptions } from '../io/interfaces';\nimport { isPromise, isAsyncIterable, isWritableDOMStream, isWritableNodeStream, isIterable, isObject } from '../util/compat';\n\nexport interface RecordBatchStreamWriterOptions {\n /**\n *\n */\n autoDestroy?: boolean;\n /**\n * A flag indicating whether the RecordBatchWriter should construct pre-0.15.0\n * encapsulated IPC Messages, which reserves 4 bytes for the Message metadata\n * length instead of 8.\n * @see https://issues.apache.org/jira/browse/ARROW-6313\n */\n writeLegacyIpcFormat?: boolean;\n}\n\nexport class RecordBatchWriter extends ReadableInterop implements Writable> {\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options?: import('stream').DuplexOptions & { autoDestroy: boolean }): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n public static throughDOM(\n // @ts-ignore\n writableStrategy?: QueuingStrategy> & { autoDestroy: boolean },\n // @ts-ignore\n readableStrategy?: { highWaterMark?: number, size?: any }\n ): { writable: WritableStream | RecordBatch>, readable: ReadableStream } {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n constructor(options?: RecordBatchStreamWriterOptions) {\n super();\n isObject(options) || (options = { autoDestroy: true, writeLegacyIpcFormat: false });\n this._autoDestroy = (typeof options.autoDestroy === 'boolean') ? options.autoDestroy : true;\n this._writeLegacyIpcFormat = (typeof options.writeLegacyIpcFormat === 'boolean') ? options.writeLegacyIpcFormat : false;\n }\n\n protected _position = 0;\n protected _started = false;\n protected _autoDestroy: boolean;\n protected _writeLegacyIpcFormat: boolean;\n // @ts-ignore\n protected _sink = new AsyncByteQueue();\n protected _schema: Schema | null = null;\n protected _dictionaryBlocks: FileBlock[] = [];\n protected _recordBatchBlocks: FileBlock[] = [];\n protected _dictionaryDeltaOffsets = new Map();\n\n public toString(sync: true): string;\n public toString(sync?: false): Promise;\n public toString(sync: any = false) {\n return this._sink.toString(sync) as Promise | string;\n }\n public toUint8Array(sync: true): Uint8Array;\n public toUint8Array(sync?: false): Promise;\n public toUint8Array(sync: any = false) {\n return this._sink.toUint8Array(sync) as Promise | Uint8Array;\n }\n\n public writeAll(input: Table | Iterable>): this;\n public writeAll(input: AsyncIterable>): Promise;\n public writeAll(input: PromiseLike>>): Promise;\n public writeAll(input: PromiseLike | Iterable>>): Promise;\n public writeAll(input: PromiseLike | Table | Iterable> | AsyncIterable>) {\n if (isPromise(input)) {\n return input.then((x) => this.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(this, input);\n }\n return writeAll(this, input);\n }\n\n public get closed() { return this._sink.closed; }\n public [Symbol.asyncIterator]() { return this._sink[Symbol.asyncIterator](); }\n public toDOMStream(options?: ReadableDOMStreamOptions) { return this._sink.toDOMStream(options); }\n public toNodeStream(options?: import('stream').ReadableOptions) { return this._sink.toNodeStream(options); }\n\n public close() {\n return this.reset()._sink.close();\n }\n public abort(reason?: any) {\n return this.reset()._sink.abort(reason);\n }\n public finish() {\n this._autoDestroy ? this.close() : this.reset(this._sink, this._schema);\n return this;\n }\n public reset(sink: WritableSink = this._sink, schema: Schema | null = null) {\n\n if ((sink === this._sink) || (sink instanceof AsyncByteQueue)) {\n this._sink = sink as AsyncByteQueue;\n } else {\n this._sink = new AsyncByteQueue();\n if (sink && isWritableDOMStream(sink)) {\n this.toDOMStream({ type: 'bytes' }).pipeTo(sink);\n } else if (sink && isWritableNodeStream(sink)) {\n this.toNodeStream({ objectMode: false }).pipe(sink);\n }\n }\n\n if (this._started && this._schema) {\n this._writeFooter(this._schema);\n }\n\n this._started = false;\n this._dictionaryBlocks = [];\n this._recordBatchBlocks = [];\n this._dictionaryDeltaOffsets = new Map();\n\n if (!schema || !(schema.compareTo(this._schema))) {\n if (schema === null) {\n this._position = 0;\n this._schema = null;\n } else {\n this._started = true;\n this._schema = schema;\n this._writeSchema(schema);\n }\n }\n\n return this;\n }\n\n public write(payload?: Table | RecordBatch | Iterable> | null) {\n\n let schema: Schema | null = null;\n\n if (!this._sink) {\n throw new Error(`RecordBatchWriter is closed`);\n } else if (payload === null || payload === undefined) {\n return this.finish() && undefined;\n } else if (payload instanceof Table && !(schema = payload.schema)) {\n return this.finish() && undefined;\n } else if (payload instanceof RecordBatch && !(schema = payload.schema)) {\n return this.finish() && undefined;\n }\n\n if (schema && !schema.compareTo(this._schema)) {\n if (this._started && this._autoDestroy) {\n return this.close();\n }\n this.reset(this._sink, schema);\n }\n\n if (payload instanceof RecordBatch) {\n if (!(payload instanceof _InternalEmptyPlaceholderRecordBatch)) {\n this._writeRecordBatch(payload);\n }\n } else if (payload instanceof Table) {\n this.writeAll(payload.chunks);\n } else if (isIterable(payload)) {\n this.writeAll(payload);\n }\n }\n\n protected _writeMessage(message: Message, alignment = 8) {\n\n const a = alignment - 1;\n const buffer = Message.encode(message);\n const flatbufferSize = buffer.byteLength;\n const prefixSize = !this._writeLegacyIpcFormat ? 8 : 4;\n const alignedSize = (flatbufferSize + prefixSize + a) & ~a;\n const nPaddingBytes = alignedSize - flatbufferSize - prefixSize;\n\n if (message.headerType === MessageHeader.RecordBatch) {\n this._recordBatchBlocks.push(new FileBlock(alignedSize, message.bodyLength, this._position));\n } else if (message.headerType === MessageHeader.DictionaryBatch) {\n this._dictionaryBlocks.push(new FileBlock(alignedSize, message.bodyLength, this._position));\n }\n\n // If not in legacy pre-0.15.0 mode, write the stream continuation indicator\n if (!this._writeLegacyIpcFormat) {\n this._write(Int32Array.of(-1));\n }\n // Write the flatbuffer size prefix including padding\n this._write(Int32Array.of(alignedSize - prefixSize));\n // Write the flatbuffer\n if (flatbufferSize > 0) { this._write(buffer); }\n // Write any padding\n return this._writePadding(nPaddingBytes);\n }\n\n protected _write(chunk: ArrayBufferViewInput) {\n if (this._started) {\n const buffer = toUint8Array(chunk);\n if (buffer && buffer.byteLength > 0) {\n this._sink.write(buffer);\n this._position += buffer.byteLength;\n }\n }\n return this;\n }\n\n protected _writeSchema(schema: Schema) {\n return this._writeMessage(Message.from(schema));\n }\n\n // @ts-ignore\n protected _writeFooter(schema: Schema) {\n // eos bytes\n return this._writeLegacyIpcFormat\n ? this._write(Int32Array.of(0))\n : this._write(Int32Array.of(-1, 0));\n }\n\n protected _writeMagic() {\n return this._write(MAGIC);\n }\n\n protected _writePadding(nBytes: number) {\n return nBytes > 0 ? this._write(new Uint8Array(nBytes)) : this;\n }\n\n protected _writeRecordBatch(batch: RecordBatch) {\n const { byteLength, nodes, bufferRegions, buffers } = VectorAssembler.assemble(batch);\n const recordBatch = new metadata.RecordBatch(batch.length, nodes, bufferRegions);\n const message = Message.from(recordBatch, byteLength);\n return this\n ._writeDictionaries(batch)\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n\n protected _writeDictionaryBatch(dictionary: Vector, id: number, isDelta = false) {\n this._dictionaryDeltaOffsets.set(id, dictionary.length + (this._dictionaryDeltaOffsets.get(id) || 0));\n const { byteLength, nodes, bufferRegions, buffers } = VectorAssembler.assemble(dictionary);\n const recordBatch = new metadata.RecordBatch(dictionary.length, nodes, bufferRegions);\n const dictionaryBatch = new metadata.DictionaryBatch(recordBatch, id, isDelta);\n const message = Message.from(dictionaryBatch, byteLength);\n return this\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n\n protected _writeBodyBuffers(buffers: ArrayBufferView[]) {\n let buffer: ArrayBufferView;\n let size: number, padding: number;\n for (let i = -1, n = buffers.length; ++i < n;) {\n if ((buffer = buffers[i]) && (size = buffer.byteLength) > 0) {\n this._write(buffer);\n if ((padding = ((size + 7) & ~7) - size) > 0) {\n this._writePadding(padding);\n }\n }\n }\n return this;\n }\n\n protected _writeDictionaries(batch: RecordBatch) {\n for (let [id, dictionary] of batch.dictionaries) {\n let offset = this._dictionaryDeltaOffsets.get(id) || 0;\n if (offset === 0 || (dictionary = dictionary.slice(offset)).length > 0) {\n const chunks = 'chunks' in dictionary ? (dictionary as any).chunks : [dictionary];\n for (const chunk of chunks) {\n this._writeDictionaryBatch(chunk, id, offset > 0);\n offset += chunk.length;\n }\n }\n }\n return this;\n }\n}\n\n/** @ignore */\nexport class RecordBatchStreamWriter extends RecordBatchWriter {\n public static writeAll(input: Table | Iterable>, options?: RecordBatchStreamWriterOptions): RecordBatchStreamWriter;\n public static writeAll(input: AsyncIterable>, options?: RecordBatchStreamWriterOptions): Promise>;\n public static writeAll(input: PromiseLike>>, options?: RecordBatchStreamWriterOptions): Promise>;\n public static writeAll(input: PromiseLike | Iterable>>, options?: RecordBatchStreamWriterOptions): Promise>;\n /** @nocollapse */\n public static writeAll(input: any, options?: RecordBatchStreamWriterOptions) {\n const writer = new RecordBatchStreamWriter(options);\n if (isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n}\n\n/** @ignore */\nexport class RecordBatchFileWriter extends RecordBatchWriter {\n public static writeAll(input: Table | Iterable>): RecordBatchFileWriter;\n public static writeAll(input: AsyncIterable>): Promise>;\n public static writeAll(input: PromiseLike>>): Promise>;\n public static writeAll(input: PromiseLike | Iterable>>): Promise>;\n /** @nocollapse */\n public static writeAll(input: any) {\n const writer = new RecordBatchFileWriter();\n if (isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n\n constructor() {\n super();\n this._autoDestroy = true;\n }\n\n // @ts-ignore\n protected _writeSchema(schema: Schema) {\n return this._writeMagic()._writePadding(2);\n }\n\n protected _writeFooter(schema: Schema) {\n const buffer = Footer.encode(new Footer(\n schema, MetadataVersion.V4,\n this._recordBatchBlocks, this._dictionaryBlocks\n ));\n return super\n ._writeFooter(schema) // EOS bytes for sequential readers\n ._write(buffer) // Write the flatbuffer\n ._write(Int32Array.of(buffer.byteLength)) // then the footer size suffix\n ._writeMagic(); // then the magic suffix\n }\n}\n\n/** @ignore */\nexport class RecordBatchJSONWriter extends RecordBatchWriter {\n\n public static writeAll(this: typeof RecordBatchWriter, input: Table | Iterable>): RecordBatchJSONWriter;\n // @ts-ignore\n public static writeAll(this: typeof RecordBatchWriter, input: AsyncIterable>): Promise>;\n public static writeAll(this: typeof RecordBatchWriter, input: PromiseLike>>): Promise>;\n public static writeAll(this: typeof RecordBatchWriter, input: PromiseLike | Iterable>>): Promise>;\n /** @nocollapse */\n public static writeAll(this: typeof RecordBatchWriter, input: any) {\n return new RecordBatchJSONWriter().writeAll(input as any);\n }\n\n private _recordBatches: RecordBatch[];\n private _dictionaries: RecordBatch[];\n\n constructor() {\n super();\n this._autoDestroy = true;\n this._recordBatches = [];\n this._dictionaries = [];\n }\n\n protected _writeMessage() { return this; }\n // @ts-ignore\n protected _writeFooter(schema: Schema) { return this; }\n protected _writeSchema(schema: Schema) {\n return this._write(`{\\n \"schema\": ${\n JSON.stringify({ fields: schema.fields.map(fieldToJSON) }, null, 2)\n }`);\n }\n protected _writeDictionaries(batch: RecordBatch) {\n if (batch.dictionaries.size > 0) {\n this._dictionaries.push(batch);\n }\n return this;\n }\n protected _writeDictionaryBatch(dictionary: Vector, id: number, isDelta = false) {\n this._dictionaryDeltaOffsets.set(id, dictionary.length + (this._dictionaryDeltaOffsets.get(id) || 0));\n this._write(this._dictionaryBlocks.length === 0 ? ` ` : `,\\n `);\n this._write(`${dictionaryBatchToJSON(dictionary, id, isDelta)}`);\n this._dictionaryBlocks.push(new FileBlock(0, 0, 0));\n return this;\n }\n protected _writeRecordBatch(batch: RecordBatch) {\n this._writeDictionaries(batch);\n this._recordBatches.push(batch);\n return this;\n }\n public close() {\n\n if (this._dictionaries.length > 0) {\n this._write(`,\\n \"dictionaries\": [\\n`);\n for (const batch of this._dictionaries) {\n super._writeDictionaries(batch);\n }\n this._write(`\\n ]`);\n }\n\n if (this._recordBatches.length > 0) {\n for (let i = -1, n = this._recordBatches.length; ++i < n;) {\n this._write(i === 0 ? `,\\n \"batches\": [\\n ` : `,\\n `);\n this._write(`${recordBatchToJSON(this._recordBatches[i])}`);\n this._recordBatchBlocks.push(new FileBlock(0, 0, 0));\n }\n this._write(`\\n ]`);\n }\n\n if (this._schema) {\n this._write(`\\n}`);\n }\n\n this._dictionaries = [];\n this._recordBatches = [];\n\n return super.close();\n }\n}\n\n/** @ignore */\nfunction writeAll(writer: RecordBatchWriter, input: Table | Iterable>) {\n let chunks = input as Iterable>;\n if (input instanceof Table) {\n chunks = input.chunks;\n writer.reset(undefined, input.schema);\n }\n for (const batch of chunks) {\n writer.write(batch);\n }\n return writer.finish();\n}\n\n/** @ignore */\nasync function writeAllAsync(writer: RecordBatchWriter, batches: AsyncIterable>) {\n for await (const batch of batches) {\n writer.write(batch);\n }\n return writer.finish();\n}\n\n/** @ignore */\nfunction fieldToJSON({ name, type, nullable }: Field): object {\n const assembler = new JSONTypeAssembler();\n return {\n 'name': name, 'nullable': nullable,\n 'type': assembler.visit(type),\n 'children': (type.children || []).map(fieldToJSON),\n 'dictionary': !DataType.isDictionary(type) ? undefined : {\n 'id': type.id,\n 'isOrdered': type.isOrdered,\n 'indexType': assembler.visit(type.indices)\n }\n };\n}\n\n/** @ignore */\nfunction dictionaryBatchToJSON(dictionary: Vector, id: number, isDelta = false) {\n const field = new Field(`${id}`, dictionary.type, dictionary.nullCount > 0);\n const columns = JSONVectorAssembler.assemble(new Column(field, [dictionary]));\n return JSON.stringify({\n 'id': id,\n 'isDelta': isDelta,\n 'data': {\n 'count': dictionary.length,\n 'columns': columns\n }\n }, null, 2);\n}\n\n/** @ignore */\nfunction recordBatchToJSON(records: RecordBatch) {\n return JSON.stringify({\n 'count': records.length,\n 'columns': JSONVectorAssembler.assemble(records)\n }, null, 2);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Column } from '../column';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Data, Buffers } from '../data';\nimport { Schema, Field } from '../schema';\nimport { Chunked } from '../vector/chunked';\nimport { RecordBatch } from '../recordbatch';\n\nconst noopBuf = new Uint8Array(0);\nconst nullBufs = (bitmapLength: number) => [\n noopBuf, noopBuf, new Uint8Array(bitmapLength), noopBuf\n] as Buffers;\n\n/** @ignore */\nexport function ensureSameLengthData(\n schema: Schema,\n chunks: Data[],\n batchLength = chunks.reduce((l, c) => Math.max(l, c.length), 0)\n) {\n let data: Data;\n let field: Field;\n let i = -1, n = chunks.length;\n const fields = [...schema.fields];\n const batchData = [] as Data[];\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = chunks[i]) && data.length === batchLength) {\n batchData[i] = data;\n } else {\n (field = fields[i]).nullable || (fields[i] = fields[i].clone({ nullable: true }) as Field);\n batchData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data;\n }\n }\n return [new Schema(fields), batchLength, batchData] as [Schema, number, Data[]];\n}\n\n/** @ignore */\nexport function distributeColumnsIntoRecordBatches(columns: Column[]): [Schema, RecordBatch[]] {\n return distributeVectorsIntoRecordBatches(new Schema(columns.map(({ field }) => field)), columns);\n}\n\n/** @ignore */\nexport function distributeVectorsIntoRecordBatches(schema: Schema, vecs: (Vector | Chunked)[]): [Schema, RecordBatch[]] {\n return uniformlyDistributeChunksAcrossRecordBatches(schema, vecs.map((v) => v instanceof Chunked ? v.chunks.map((c) => c.data) : [v.data]));\n}\n\n/** @ignore */\nfunction uniformlyDistributeChunksAcrossRecordBatches(schema: Schema, columns: Data[][]): [Schema, RecordBatch[]] {\n\n const fields = [...schema.fields];\n const batchArgs = [] as [number, Data[]][];\n const memo = { numBatches: columns.reduce((n, c) => Math.max(n, c.length), 0) };\n\n let numBatches = 0, batchLength = 0;\n let i: number = -1, numColumns = columns.length;\n let child: Data, childData: Data[] = [];\n\n while (memo.numBatches-- > 0) {\n\n for (batchLength = Number.POSITIVE_INFINITY, i = -1; ++i < numColumns;) {\n childData[i] = child = columns[i].shift()!;\n batchLength = Math.min(batchLength, child ? child.length : batchLength);\n }\n\n if (isFinite(batchLength)) {\n childData = distributeChildData(fields, batchLength, childData, columns, memo);\n if (batchLength > 0) {\n batchArgs[numBatches++] = [batchLength, childData.slice()];\n }\n }\n }\n return [\n schema = new Schema(fields, schema.metadata),\n batchArgs.map((xs) => new RecordBatch(schema, ...xs))\n ];\n}\n\n/** @ignore */\nfunction distributeChildData(fields: Field[], batchLength: number, childData: Data[], columns: Data[][], memo: { numBatches: number }) {\n let data: Data;\n let field: Field;\n let length = 0, i = -1, n = columns.length;\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = childData[i]) && ((length = data.length) >= batchLength)) {\n if (length === batchLength) {\n childData[i] = data;\n } else {\n childData[i] = data.slice(0, batchLength);\n data = data.slice(batchLength, length - batchLength);\n memo.numBatches = Math.max(memo.numBatches, columns[i].unshift(data));\n }\n } else {\n (field = fields[i]).nullable || (fields[i] = field.clone({ nullable: true }) as Field);\n childData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data;\n }\n }\n return childData;\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Chunked } from './chunked';\nimport { clampRange } from '../util/vector';\nimport { VectorType as V } from '../interfaces';\nimport { AbstractVector, Vector, Clonable, Sliceable, Applicative } from '../vector';\n\n/** @ignore */\nexport interface BaseVector extends Clonable>, Sliceable>, Applicative> {\n slice(begin?: number, end?: number): V;\n concat(...others: Vector[]): Chunked;\n clone(data: Data, children?: Vector[]): V;\n}\n\n/** @ignore */\nexport abstract class BaseVector extends AbstractVector\n implements Clonable>, Sliceable>, Applicative> {\n\n protected _children?: Vector[];\n\n constructor(data: Data, children?: Vector[]) {\n super();\n this._children = children;\n this.numChildren = data.childData.length;\n this._bindDataAccessors(this.data = data);\n }\n\n public readonly data: Data;\n public readonly numChildren: number;\n\n public get type() { return this.data.type; }\n public get typeId() { return this.data.typeId; }\n public get length() { return this.data.length; }\n public get offset() { return this.data.offset; }\n public get stride() { return this.data.stride; }\n public get nullCount() { return this.data.nullCount; }\n public get byteLength() { return this.data.byteLength; }\n public get VectorName() { return `${Type[this.typeId]}Vector`; }\n\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n\n public get values() { return this.data.values; }\n public get typeIds() { return this.data.typeIds; }\n public get nullBitmap() { return this.data.nullBitmap; }\n public get valueOffsets() { return this.data.valueOffsets; }\n\n public get [Symbol.toStringTag]() { return `${this.VectorName}<${this.type[Symbol.toStringTag]}>`; }\n\n public clone(data: Data, children = this._children) {\n return Vector.new(data, children) as any;\n }\n\n public concat(...others: Vector[]) {\n return Chunked.concat(this, ...others);\n }\n\n public slice(begin?: number, end?: number) {\n // Adjust args similar to Array.prototype.slice. Normalize begin/end to\n // clamp between 0 and length, and wrap around on negative indices, e.g.\n // slice(-1, 5) or slice(5, -1)\n return clampRange(this, begin, end, this._sliceInternal);\n }\n\n public isValid(index: number): boolean {\n if (this.nullCount > 0) {\n const idx = this.offset + index;\n const val = this.nullBitmap[idx >> 3];\n const mask = (val & (1 << (idx % 8)));\n return mask !== 0;\n }\n return true;\n }\n\n public getChildAt(index: number): Vector | null {\n return index < 0 || index >= this.numChildren ? null : (\n (this._children || (this._children = []))[index] ||\n (this._children[index] = Vector.new(this.data.childData[index] as Data))\n ) as Vector;\n }\n\n public toJSON(): any { return [...this]; }\n\n protected _sliceInternal(self: this, begin: number, end: number) {\n return self.clone(self.data.slice(begin, end - begin), null!);\n }\n\n // @ts-ignore\n protected _bindDataAccessors(data: Data) {\n // Implementation in src/vectors/index.ts due to circular dependency/packaging shenanigans\n }\n}\n\n(BaseVector.prototype as any)[Symbol.isConcatSpreadable] = true;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { Binary, Utf8 } from '../type';\n\n/** @ignore */\nexport class BinaryVector extends BaseVector {\n public asUtf8() {\n return Vector.new(this.data.clone(new Utf8()));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Bool } from '../type';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\n\n/** @ignore */\nexport class BoolVector extends BaseVector {\n public static from(input: Iterable): BoolVector;\n public static from(input: AsyncIterable): Promise;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n return vectorFromValuesWithType(() => new Bool(), input);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DateUnit } from '../enum';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorType as V } from '../interfaces';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { Date_, DateDay, DateMillisecond } from '../type';\n\n/** @ignore */\ntype FromArgs = [Iterable, T['unit']];\n\n/** @ignore */\nexport class DateVector extends BaseVector {\n public static from(...args: FromArgs): V;\n public static from(...args: FromArgs): V;\n public static from(input: Iterable): V;\n public static from(input: AsyncIterable): Promise>;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(...args: FromArgs | [Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync]) {\n if (args.length === 2) {\n return vectorFromValuesWithType(() => args[1] === DateUnit.DAY ? new DateDay() : new DateMillisecond() as T, args[0]);\n }\n return vectorFromValuesWithType(() => new DateMillisecond() as T, args[0]);\n }\n}\n\n/** @ignore */\nexport class DateDayVector extends DateVector {}\n\n/** @ignore */\nexport class DateMillisecondVector extends DateVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Decimal } from '../type';\nimport { BaseVector } from './base';\n\n/** @ignore */\nexport class DecimalVector extends BaseVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { VectorType as V } from '../interfaces';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { DataType, Dictionary, TKeys } from '../type';\n\n/** @ignore */\ntype FromArgs = [Vector, TKey, ArrayLike | TKey['TArray']];\n\n/** @ignore */\nexport class DictionaryVector extends BaseVector> {\n public static from(...args: FromArgs): V>;\n public static from(input: VectorBuilderOptions>): Vector>;\n public static from(input: VectorBuilderOptionsAsync>): Promise>>;\n /** @nocollapse */\n public static from(...args: any[]) {\n if (args.length === 3) {\n const [values, indices, keys] = args as FromArgs;\n const type = new Dictionary(values.type, indices, null, null);\n return Vector.new(Data.Dictionary(type, 0, keys.length, 0, null, keys, values));\n }\n return vectorFromValuesWithType(() => args[0].type, args[0]);\n }\n\n constructor(data: Data>) {\n super(data);\n this.indices = Vector.new(data.clone(this.type.indices));\n }\n\n public readonly indices: V;\n\n public get dictionary() { return > this.data.dictionary; }\n public reverseLookup(value: T) { return this.dictionary.indexOf(value); }\n public getKey(idx: number): TKey['TValue'] | null { return this.indices.get(idx); }\n public getValue(key: number): T['TValue'] | null { return this.dictionary.get(key); }\n public setKey(idx: number, key: TKey['TValue'] | null) { return this.indices.set(idx, key); }\n public setValue(key: number, value: T['TValue'] | null) { return this.dictionary.set(key, value); }\n}\n\n(DictionaryVector.prototype as any).indices = null;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { FixedSizeBinary } from '../type';\n\n/** @ignore */\nexport class FixedSizeBinaryVector extends BaseVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { DataType, FixedSizeList } from '../type';\n\n/** @ignore */\nexport class FixedSizeListVector extends BaseVector> {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { Float, Float16, Float32, Float64, FloatArray } from '../type';\nimport { VectorType as V, TypedArrayConstructor } from '../interfaces';\n\n/** @ignore */\ntype FloatVectorConstructors =\n typeof FloatVector |\n typeof Float16Vector |\n typeof Float32Vector |\n typeof Float64Vector ;\n\n/** @ignore */\ntype FromInput =\n FloatArray |\n Iterable |\n AsyncIterable |\n VectorBuilderOptions |\n VectorBuilderOptionsAsync ;\n\n/** @ignore */\ntype FloatArrayCtor = TypedArrayConstructor;\n\n/** @ignore */\nexport class FloatVector extends BaseVector {\n\n // Guaranteed zero-copy variants\n public static from(this: typeof FloatVector, input: Uint16Array): Float16Vector;\n public static from(this: typeof FloatVector, input: Float32Array): Float32Vector;\n public static from(this: typeof FloatVector, input: Float64Array): Float64Vector;\n\n // Zero-copy if input is a TypedArray of the same type as the\n // Vector that from is called on, otherwise uses the Builders\n public static from(this: typeof Float16Vector, input: FromInput): Float16Vector;\n public static from(this: typeof Float32Vector, input: FromInput): Float32Vector;\n public static from(this: typeof Float64Vector, input: FromInput): Float64Vector;\n\n // Not zero-copy\n public static from(this: typeof FloatVector, input: Iterable): V;\n public static from(this: typeof FloatVector, input: AsyncIterable): Promise>;\n public static from(this: typeof FloatVector, input: VectorBuilderOptions): Chunked;\n public static from(this: typeof FloatVector, input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(this: FloatVectorConstructors, input: FromInput) {\n\n let ArrowType = vectorTypeToDataType(this);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n let InputType = arrayTypeToDataType(input.constructor as FloatArrayCtor) || ArrowType;\n // Special case, infer the Arrow DataType from the input if calling the base\n // FloatVector.from with a TypedArray, e.g. `FloatVector.from(new Float32Array())`\n if (ArrowType === null) {\n ArrowType = InputType;\n }\n // If the DataType inferred from the Vector constructor matches the\n // DataType inferred from the input arguments, return zero-copy view\n if (ArrowType && ArrowType === InputType) {\n let type = new ArrowType();\n let length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is Float16 but the input type isn't a Uint16Array,\n // let the Float16Builder handle casting the input values to Uint16s.\n if (!convertTo16Bit(ArrowType, input.constructor)) {\n return Vector.new(Data.Float(type, 0, length, 0, null, input as FloatArray));\n }\n }\n }\n\n if (ArrowType) {\n // If the DataType inferred from the Vector constructor is different than\n // the DataType inferred from the input TypedArray, or if input isn't a\n // TypedArray, use the Builders to construct the result Vector\n return vectorFromValuesWithType(() => new ArrowType!() as T, input);\n }\n\n if ((input instanceof DataView) || (input instanceof ArrayBuffer)) {\n throw new TypeError(`Cannot infer float type from instance of ${input.constructor.name}`);\n }\n\n throw new TypeError('Unrecognized FloatVector input');\n }\n}\n\n/** @ignore */\nexport class Float16Vector extends FloatVector {\n // Since JS doesn't have half floats, `toArray()` returns a zero-copy slice\n // of the underlying Uint16Array data. This behavior ensures we don't incur\n // extra compute or copies if you're calling `toArray()` in order to create\n // a buffer for something like WebGL. Buf if you're using JS and want typed\n // arrays of 4-to-8-byte precision, these methods will enumerate the values\n // and clamp to the desired byte lengths.\n public toFloat32Array() { return new Float32Array(this as Iterable); }\n public toFloat64Array() { return new Float64Array(this as Iterable); }\n}\n\n/** @ignore */\nexport class Float32Vector extends FloatVector {}\n/** @ignore */\nexport class Float64Vector extends FloatVector {}\n\nconst convertTo16Bit = (typeCtor: any, dataCtor: any) => {\n return (typeCtor === Float16) && (dataCtor !== Uint16Array);\n};\n\n/** @ignore */\nconst arrayTypeToDataType = (ctor: FloatArrayCtor) => {\n switch (ctor) {\n case Uint16Array: return Float16;\n case Float32Array: return Float32;\n case Float64Array: return Float64;\n default: return null;\n }\n};\n\n/** @ignore */\nconst vectorTypeToDataType = (ctor: FloatVectorConstructors) => {\n switch (ctor) {\n case Float16Vector: return Float16;\n case Float32Vector: return Float32;\n case Float64Vector: return Float64;\n default: return null;\n }\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Interval, IntervalDayTime, IntervalYearMonth } from '../type';\n\n/** @ignore */\nexport class IntervalVector extends BaseVector {}\n/** @ignore */\nexport class IntervalDayTimeVector extends IntervalVector {}\n/** @ignore */\nexport class IntervalYearMonthVector extends IntervalVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { BigInt64Array, BigUint64Array } from '../util/compat';\nimport { toBigInt64Array, toBigUint64Array } from '../util/buffer';\nimport { Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64, IntArray } from '../type';\nimport { VectorType as V, TypedArrayConstructor, BigIntArrayConstructor, BigIntArray } from '../interfaces';\n\n/** @ignore */\ntype IntVectorConstructors =\n typeof IntVector |\n typeof Int8Vector |\n typeof Int16Vector |\n typeof Int32Vector |\n typeof Uint8Vector |\n typeof Uint16Vector |\n typeof Uint32Vector |\n typeof Int64Vector |\n typeof Uint64Vector ;\n\n/** @ignore */\ntype FromInput =\n IntArray | BigIntArray |\n Iterable |\n AsyncIterable |\n VectorBuilderOptions |\n VectorBuilderOptionsAsync ;\n\n/** @ignore */\ntype FromArgs = [FromInput, boolean?];\n\n/** @ignore */\ntype IntArrayCtor = TypedArrayConstructor | BigIntArrayConstructor;\n\n/** @ignore */\nexport class IntVector extends BaseVector {\n\n // Guaranteed zero-copy variants\n public static from(this: typeof IntVector, input: Int8Array): Int8Vector;\n public static from(this: typeof IntVector, input: Int16Array): Int16Vector;\n public static from(this: typeof IntVector, input: Int32Array): Int32Vector;\n public static from(this: typeof IntVector, input: BigInt64Array): Int64Vector;\n public static from(this: typeof IntVector, input: Int32Array, is64bit: true): Int64Vector;\n public static from(this: typeof IntVector, input: Uint8Array): Uint8Vector;\n public static from(this: typeof IntVector, input: Uint16Array): Uint16Vector;\n public static from(this: typeof IntVector, input: Uint32Array): Uint32Vector;\n public static from(this: typeof IntVector, input: BigUint64Array): Uint64Vector;\n public static from(this: typeof IntVector, input: Uint32Array, is64bit: true): Uint64Vector;\n\n // Zero-copy if input is a TypedArray of the same type as the\n // Vector that from is called on, otherwise uses the Builders\n public static from(this: typeof Int8Vector, input: FromInput): Int8Vector;\n public static from(this: typeof Int16Vector, input: FromInput): Int16Vector;\n public static from(this: typeof Int32Vector, input: FromInput): Int32Vector;\n public static from(this: typeof Int64Vector, input: FromInput): Int64Vector;\n public static from(this: typeof Uint8Vector, input: FromInput): Uint8Vector;\n public static from(this: typeof Uint16Vector, input: FromInput): Uint16Vector;\n public static from(this: typeof Uint32Vector, input: FromInput): Uint32Vector;\n public static from(this: typeof Uint64Vector, input: FromInput): Uint64Vector;\n\n // Not zero-copy\n public static from(this: typeof IntVector, input: Iterable): V;\n public static from(this: typeof IntVector, input: AsyncIterable): Promise>;\n public static from(this: typeof IntVector, input: VectorBuilderOptions): Chunked;\n public static from(this: typeof IntVector, input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(this: IntVectorConstructors, ...args: FromArgs) {\n\n let [input, is64bit = false] = args;\n let ArrowType = vectorTypeToDataType(this, is64bit);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n let InputType = arrayTypeToDataType(input.constructor as IntArrayCtor, is64bit) || ArrowType;\n // Special case, infer the Arrow DataType from the input if calling the base\n // IntVector.from with a TypedArray, e.g. `IntVector.from(new Int32Array())`\n if (ArrowType === null) {\n ArrowType = InputType;\n }\n // If the DataType inferred from the Vector constructor matches the\n // DataType inferred from the input arguments, return zero-copy view\n if (ArrowType && ArrowType === InputType) {\n let type = new ArrowType();\n let length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is 64bit but the input type is 32bit pairs, update the logical length\n if (convert32To64Bit(ArrowType, input.constructor)) {\n length *= 0.5;\n }\n return Vector.new(Data.Int(type, 0, length, 0, null, input as IntArray));\n }\n }\n\n if (ArrowType) {\n // If the DataType inferred from the Vector constructor is different than\n // the DataType inferred from the input TypedArray, or if input isn't a\n // TypedArray, use the Builders to construct the result Vector\n return vectorFromValuesWithType(() => new ArrowType!() as T, input);\n }\n\n if ((input instanceof DataView) || (input instanceof ArrayBuffer)) {\n throw new TypeError(`Cannot infer integer type from instance of ${input.constructor.name}`);\n }\n\n throw new TypeError('Unrecognized IntVector input');\n }\n}\n\n/** @ignore */\nexport class Int8Vector extends IntVector {}\n/** @ignore */\nexport class Int16Vector extends IntVector {}\n/** @ignore */\nexport class Int32Vector extends IntVector {}\n/** @ignore */\nexport class Int64Vector extends IntVector {\n public toBigInt64Array() {\n return toBigInt64Array(this.values);\n }\n // @ts-ignore\n private _values64: BigInt64Array;\n public get values64(): BigInt64Array {\n return this._values64 || (this._values64 = this.toBigInt64Array());\n }\n}\n\n/** @ignore */\nexport class Uint8Vector extends IntVector {}\n/** @ignore */\nexport class Uint16Vector extends IntVector {}\n/** @ignore */\nexport class Uint32Vector extends IntVector {}\n/** @ignore */\nexport class Uint64Vector extends IntVector {\n public toBigUint64Array() {\n return toBigUint64Array(this.values);\n }\n // @ts-ignore\n private _values64: BigUint64Array;\n public get values64(): BigUint64Array {\n return this._values64 || (this._values64 = this.toBigUint64Array());\n }\n}\n\nconst convert32To64Bit = (typeCtor: any, dataCtor: any) => {\n return (typeCtor === Int64 || typeCtor === Uint64) &&\n (dataCtor === Int32Array || dataCtor === Uint32Array);\n};\n\n/** @ignore */\nconst arrayTypeToDataType = (ctor: IntArrayCtor, is64bit: boolean) => {\n switch (ctor) {\n case Int8Array: return Int8;\n case Int16Array: return Int16;\n case Int32Array: return is64bit ? Int64 : Int32;\n case BigInt64Array: return Int64;\n case Uint8Array: return Uint8;\n case Uint16Array: return Uint16;\n case Uint32Array: return is64bit ? Uint64 : Uint32;\n case BigUint64Array: return Uint64;\n default: return null;\n }\n};\n\n/** @ignore */\nconst vectorTypeToDataType = (ctor: IntVectorConstructors, is64bit: boolean) => {\n switch (ctor) {\n case Int8Vector: return Int8;\n case Int16Vector: return Int16;\n case Int32Vector: return is64bit ? Int64 : Int32;\n case Int64Vector: return Int64;\n case Uint8Vector: return Uint8;\n case Uint16Vector: return Uint16;\n case Uint32Vector: return is64bit ? Uint64 : Uint32;\n case Uint64Vector: return Uint64;\n default: return null;\n }\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { DataType, List } from '../type';\n\n/** @ignore */\nexport class ListVector extends BaseVector> {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { MapRow } from './row';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { DataType, Map_, Struct, List } from '../type';\n\n/** @ignore */\nexport class MapVector extends BaseVector> {\n public asList() {\n const child = this.type.children[0] as Field>;\n return Vector.new(this.data.clone(new List>(child)));\n }\n public bind(index: number): Map_['TValue'] {\n const child = this.getChildAt>(0);\n const { [index]: begin, [index + 1]: end } = this.valueOffsets;\n return new MapRow(child!.slice(begin, end));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Null } from '../type';\nimport { BaseVector } from './base';\n\n/** @ignore */\nexport class NullVector extends BaseVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { StructRow } from './row';\nimport { BaseVector } from './base';\nimport { DataType, Struct } from '../type';\n\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */\nexport class StructVector extends BaseVector> {\n // @ts-ignore\n private _row: StructRow;\n public bind(index: number): Struct['TValue'] {\n const proto = this._row || (this._row = new StructRow(this));\n const bound = Object.create(proto);\n bound[kRowIndex] = index;\n return bound;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond } from '../type';\n\n/** @ignore */\nexport class TimestampVector extends BaseVector {}\n/** @ignore */\nexport class TimestampSecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampMillisecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampMicrosecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampNanosecondVector extends TimestampVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond } from '../type';\n\n/** @ignore */\nexport class TimeVector extends BaseVector {}\n/** @ignore */\nexport class TimeSecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeMillisecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeMicrosecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeNanosecondVector extends TimeVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Union, DenseUnion, SparseUnion} from '../type';\n\n/** @ignore */\nexport class UnionVector extends BaseVector {\n public get typeIdToChildIndex() { return this.data.type.typeIdToChildIndex; }\n}\n\n/** @ignore */\nexport class DenseUnionVector extends UnionVector {\n public get valueOffsets() { return this.data.valueOffsets!; }\n}\n\n/** @ignore */\nexport class SparseUnionVector extends UnionVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { Binary, Utf8 } from '../type';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\n\n/** @ignore */\nexport class Utf8Vector extends BaseVector {\n public static from(input: Iterable): Utf8Vector;\n public static from(input: AsyncIterable): Promise;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n return vectorFromValuesWithType(() => new Utf8(), input);\n }\n public asBinary() {\n return Vector.new(this.data.clone(new Binary()));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nexport function partial0(visit: (node: T) => any) {\n return function(this: T) { return visit(this); };\n}\n\n/** @ignore */\nexport function partial1(visit: (node: T, a: any) => any) {\n return function(this: T, a: any) { return visit(this, a); };\n}\n\n/** @ignore */\nexport function partial2(visit: (node: T, a: any, b: any) => any) {\n return function(this: T, a: any, b: any) { return visit(this, a, b); };\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { BN } from '../util/bn';\nimport { Visitor } from '../visitor';\nimport { decodeUtf8 } from '../util/utf8';\nimport { VectorType } from '../interfaces';\nimport { uint16ToFloat64 } from '../util/math';\nimport { Type, UnionMode, Precision, DateUnit, TimeUnit, IntervalUnit } from '../enum';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface GetVisitor extends Visitor {\n visit (node: T, index: number): T['TValue'];\n visitMany (nodes: T[], indices: number[]): T['TValue'][];\n getVisitFn (node: T): (vector: VectorType, index: number) => VectorType['TValue'];\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, index: number) => VectorType['TValue'];\n visitNull (vector: VectorType, index: number): T['TValue'];\n visitBool (vector: VectorType, index: number): T['TValue'];\n visitInt (vector: VectorType, index: number): T['TValue'];\n visitInt8 (vector: VectorType, index: number): T['TValue'];\n visitInt16 (vector: VectorType, index: number): T['TValue'];\n visitInt32 (vector: VectorType, index: number): T['TValue'];\n visitInt64 (vector: VectorType, index: number): T['TValue'];\n visitUint8 (vector: VectorType, index: number): T['TValue'];\n visitUint16 (vector: VectorType, index: number): T['TValue'];\n visitUint32 (vector: VectorType, index: number): T['TValue'];\n visitUint64 (vector: VectorType, index: number): T['TValue'];\n visitFloat (vector: VectorType, index: number): T['TValue'];\n visitFloat16 (vector: VectorType, index: number): T['TValue'];\n visitFloat32 (vector: VectorType, index: number): T['TValue'];\n visitFloat64 (vector: VectorType, index: number): T['TValue'];\n visitUtf8 (vector: VectorType, index: number): T['TValue'];\n visitBinary (vector: VectorType, index: number): T['TValue'];\n visitFixedSizeBinary (vector: VectorType, index: number): T['TValue'];\n visitDate (vector: VectorType, index: number): T['TValue'];\n visitDateDay (vector: VectorType, index: number): T['TValue'];\n visitDateMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimestamp (vector: VectorType, index: number): T['TValue'];\n visitTimestampSecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampMicrosecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampNanosecond (vector: VectorType, index: number): T['TValue'];\n visitTime (vector: VectorType, index: number): T['TValue'];\n visitTimeSecond (vector: VectorType, index: number): T['TValue'];\n visitTimeMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimeMicrosecond (vector: VectorType, index: number): T['TValue'];\n visitTimeNanosecond (vector: VectorType, index: number): T['TValue'];\n visitDecimal (vector: VectorType, index: number): T['TValue'];\n visitList (vector: VectorType, index: number): T['TValue'];\n visitStruct (vector: VectorType, index: number): T['TValue'];\n visitUnion (vector: VectorType, index: number): T['TValue'];\n visitDenseUnion (vector: VectorType, index: number): T['TValue'];\n visitSparseUnion (vector: VectorType, index: number): T['TValue'];\n visitDictionary (vector: VectorType, index: number): T['TValue'];\n visitInterval (vector: VectorType, index: number): T['TValue'];\n visitIntervalDayTime (vector: VectorType, index: number): T['TValue'];\n visitIntervalYearMonth (vector: VectorType, index: number): T['TValue'];\n visitFixedSizeList (vector: VectorType, index: number): T['TValue'];\n visitMap (vector: VectorType, index: number): T['TValue'];\n}\n\n/** @ignore */\nexport class GetVisitor extends Visitor {}\n\n/** @ignore */const epochDaysToMs = (data: Int32Array, index: number) => 86400000 * data[index];\n/** @ignore */const epochMillisecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1]) + (data[index] >>> 0);\n/** @ignore */const epochMicrosecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1] / 1000) + ((data[index] >>> 0) / 1000);\n/** @ignore */const epochNanosecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1] / 1000000) + ((data[index] >>> 0) / 1000000);\n\n/** @ignore */const epochMillisecondsToDate = (epochMs: number) => new Date(epochMs);\n/** @ignore */const epochDaysToDate = (data: Int32Array, index: number) => epochMillisecondsToDate(epochDaysToMs(data, index));\n/** @ignore */const epochMillisecondsLongToDate = (data: Int32Array, index: number) => epochMillisecondsToDate(epochMillisecondsLongToMs(data, index));\n\n/** @ignore */\nconst getNull = (_vector: VectorType, _index: number): T['TValue'] => null;\n/** @ignore */\nconst getVariableWidthBytes = (values: Uint8Array, valueOffsets: Int32Array, index: number) => {\n const { [index]: x, [index + 1]: y } = valueOffsets;\n return x != null && y != null ? values.subarray(x, y) : null as any;\n};\n\n/** @ignore */\nconst getBool = ({ offset, values }: VectorType, index: number): T['TValue'] => {\n const idx = offset + index;\n const byte = values[idx >> 3];\n return (byte & 1 << (idx % 8)) !== 0;\n};\n\n/** @ignore */\ntype Numeric1X = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32 | Float32 | Float64;\n/** @ignore */\ntype Numeric2X = Int64 | Uint64;\n\n/** @ignore */\nconst getDateDay = ({ values }: VectorType, index: number): T['TValue'] => epochDaysToDate(values, index);\n/** @ignore */\nconst getDateMillisecond = ({ values }: VectorType, index: number): T['TValue'] => epochMillisecondsLongToDate(values, index * 2);\n/** @ignore */\nconst getNumeric = ({ stride, values }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getFloat16 = ({ stride, values }: VectorType, index: number): T['TValue'] => uint16ToFloat64(values[stride * index]);\n/** @ignore */\nconst getBigInts = ({ stride, values, type }: VectorType, index: number): T['TValue'] => BN.new(values.subarray(stride * index, stride * (index + 1)), type.isSigned);\n/** @ignore */\nconst getFixedSizeBinary = ({ stride, values }: VectorType, index: number): T['TValue'] => values.subarray(stride * index, stride * (index + 1));\n\n/** @ignore */\nconst getBinary = ({ values, valueOffsets }: VectorType, index: number): T['TValue'] => getVariableWidthBytes(values, valueOffsets, index);\n/** @ignore */\nconst getUtf8 = ({ values, valueOffsets }: VectorType, index: number): T['TValue'] => {\n const bytes = getVariableWidthBytes(values, valueOffsets, index);\n return bytes !== null ? decodeUtf8(bytes) : null as any;\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getInt = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.bitWidth < 64\n ? getNumeric(vector as VectorType, index)\n : getBigInts(vector as VectorType, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getFloat = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.precision !== Precision.HALF\n ? getNumeric(vector as VectorType, index)\n : getFloat16(vector as VectorType, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getDate = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.unit === DateUnit.DAY\n ? getDateDay(vector as VectorType, index)\n : getDateMillisecond(vector as VectorType, index)\n);\n\n/** @ignore */\nconst getTimestampSecond = ({ values }: VectorType, index: number): T['TValue'] => 1000 * epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMillisecond = ({ values }: VectorType, index: number): T['TValue'] => epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMicrosecond = ({ values }: VectorType, index: number): T['TValue'] => epochMicrosecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampNanosecond = ({ values }: VectorType, index: number): T['TValue'] => epochNanosecondsLongToMs(values, index * 2);\n/* istanbul ignore next */\n/** @ignore */\nconst getTimestamp = (vector: VectorType, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimestampSecond(vector as VectorType, index);\n case TimeUnit.MILLISECOND: return getTimestampMillisecond(vector as VectorType, index);\n case TimeUnit.MICROSECOND: return getTimestampMicrosecond(vector as VectorType, index);\n case TimeUnit.NANOSECOND: return getTimestampNanosecond(vector as VectorType, index);\n }\n};\n\n/** @ignore */\nconst getTimeSecond = ({ values, stride }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMillisecond = ({ values, stride }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMicrosecond = ({ values }: VectorType, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/** @ignore */\nconst getTimeNanosecond = ({ values }: VectorType, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/* istanbul ignore next */\n/** @ignore */\nconst getTime = (vector: VectorType, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimeSecond(vector as VectorType, index);\n case TimeUnit.MILLISECOND: return getTimeMillisecond(vector as VectorType, index);\n case TimeUnit.MICROSECOND: return getTimeMicrosecond(vector as VectorType, index);\n case TimeUnit.NANOSECOND: return getTimeNanosecond(vector as VectorType, index);\n }\n};\n\n/** @ignore */\nconst getDecimal = ({ values }: VectorType, index: number): T['TValue'] => BN.decimal(values.subarray(4 * index, 4 * (index + 1)));\n\n/** @ignore */\nconst getList = (vector: VectorType, index: number): T['TValue'] => {\n const child = vector.getChildAt(0)!, { valueOffsets, stride } = vector;\n return child.slice(valueOffsets[index * stride], valueOffsets[(index * stride) + 1]) as T['TValue'];\n};\n\n/** @ignore */\nconst getMap = (vector: VectorType, index: number): T['TValue'] => {\n return vector.bind(index) as T['TValue'];\n};\n\n/** @ignore */\nconst getStruct = (vector: VectorType, index: number): T['TValue'] => {\n return vector.bind(index) as T['TValue'];\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getUnion = <\n V extends VectorType | VectorType | VectorType\n>(vector: V, index: number): V['TValue'] => {\n return vector.type.mode === UnionMode.Dense ?\n getDenseUnion(vector as VectorType, index) :\n getSparseUnion(vector as VectorType, index);\n};\n\n/** @ignore */\nconst getDenseUnion = (vector: VectorType, index: number): T['TValue'] => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n return child ? child.get(vector.valueOffsets[index]) : null;\n};\n\n/** @ignore */\nconst getSparseUnion = (vector: VectorType, index: number): T['TValue'] => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n return child ? child.get(index) : null;\n};\n\n/** @ignore */\nconst getDictionary = (vector: VectorType, index: number): T['TValue'] => {\n return vector.getValue(vector.getKey(index)!);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getInterval = (vector: VectorType, index: number): T['TValue'] =>\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? getIntervalDayTime(vector as VectorType, index)\n : getIntervalYearMonth(vector as VectorType, index);\n\n/** @ignore */\nconst getIntervalDayTime = ({ values }: VectorType, index: number): T['TValue'] => values.subarray(2 * index, 2 * (index + 1));\n\n/** @ignore */\nconst getIntervalYearMonth = ({ values }: VectorType, index: number): T['TValue'] => {\n const interval = values[index];\n const int32s = new Int32Array(2);\n int32s[0] = interval / 12 | 0; /* years */\n int32s[1] = interval % 12 | 0; /* months */\n return int32s;\n};\n\n/** @ignore */\nconst getFixedSizeList = (vector: VectorType, index: number): T['TValue'] => {\n const child = vector.getChildAt(0)!, { stride } = vector;\n return child.slice(index * stride, (index + 1) * stride) as T['TValue'];\n};\n\nGetVisitor.prototype.visitNull = getNull;\nGetVisitor.prototype.visitBool = getBool;\nGetVisitor.prototype.visitInt = getInt;\nGetVisitor.prototype.visitInt8 = getNumeric;\nGetVisitor.prototype.visitInt16 = getNumeric;\nGetVisitor.prototype.visitInt32 = getNumeric;\nGetVisitor.prototype.visitInt64 = getBigInts;\nGetVisitor.prototype.visitUint8 = getNumeric;\nGetVisitor.prototype.visitUint16 = getNumeric;\nGetVisitor.prototype.visitUint32 = getNumeric;\nGetVisitor.prototype.visitUint64 = getBigInts;\nGetVisitor.prototype.visitFloat = getFloat;\nGetVisitor.prototype.visitFloat16 = getFloat16;\nGetVisitor.prototype.visitFloat32 = getNumeric;\nGetVisitor.prototype.visitFloat64 = getNumeric;\nGetVisitor.prototype.visitUtf8 = getUtf8;\nGetVisitor.prototype.visitBinary = getBinary;\nGetVisitor.prototype.visitFixedSizeBinary = getFixedSizeBinary;\nGetVisitor.prototype.visitDate = getDate;\nGetVisitor.prototype.visitDateDay = getDateDay;\nGetVisitor.prototype.visitDateMillisecond = getDateMillisecond;\nGetVisitor.prototype.visitTimestamp = getTimestamp;\nGetVisitor.prototype.visitTimestampSecond = getTimestampSecond;\nGetVisitor.prototype.visitTimestampMillisecond = getTimestampMillisecond;\nGetVisitor.prototype.visitTimestampMicrosecond = getTimestampMicrosecond;\nGetVisitor.prototype.visitTimestampNanosecond = getTimestampNanosecond;\nGetVisitor.prototype.visitTime = getTime;\nGetVisitor.prototype.visitTimeSecond = getTimeSecond;\nGetVisitor.prototype.visitTimeMillisecond = getTimeMillisecond;\nGetVisitor.prototype.visitTimeMicrosecond = getTimeMicrosecond;\nGetVisitor.prototype.visitTimeNanosecond = getTimeNanosecond;\nGetVisitor.prototype.visitDecimal = getDecimal;\nGetVisitor.prototype.visitList = getList;\nGetVisitor.prototype.visitStruct = getStruct;\nGetVisitor.prototype.visitUnion = getUnion;\nGetVisitor.prototype.visitDenseUnion = getDenseUnion;\nGetVisitor.prototype.visitSparseUnion = getSparseUnion;\nGetVisitor.prototype.visitDictionary = getDictionary;\nGetVisitor.prototype.visitInterval = getInterval;\nGetVisitor.prototype.visitIntervalDayTime = getIntervalDayTime;\nGetVisitor.prototype.visitIntervalYearMonth = getIntervalYearMonth;\nGetVisitor.prototype.visitFixedSizeList = getFixedSizeList;\nGetVisitor.prototype.visitMap = getMap;\n\n/** @ignore */\nexport const instance = new GetVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { getBool, iterateBits } from '../util/bit';\nimport { createElementComparator } from '../util/vector';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface IndexOfVisitor extends Visitor {\n visit (node: T, value: T['TValue'] | null, index?: number): number;\n visitMany (nodes: T[], values: (T['TValue'] | null)[], indices: (number | undefined)[]): number[];\n getVisitFn (node: T): (vector: VectorType, value: VectorType['TValue'] | null, index?: number) => number;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, value: T['TValue'] | null, index?: number) => number;\n visitNull (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitBool (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUtf8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitBinary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeBinary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDate (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDateDay (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDateMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestamp (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampSecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampMicrosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampNanosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTime (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeSecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeMicrosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeNanosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDecimal (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitList (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitStruct (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDenseUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitSparseUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDictionary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInterval (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitIntervalDayTime (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitIntervalYearMonth (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeList (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitMap (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n}\n\n/** @ignore */\nexport class IndexOfVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullIndexOf(vector: VectorType, searchElement?: null) {\n // if you're looking for nulls and the vector isn't empty, we've got 'em!\n return searchElement === null && vector.length > 0 ? 0 : -1;\n}\n\n/** @ignore */\nfunction indexOfNull(vector: VectorType, fromIndex?: number): number {\n const { nullBitmap } = vector;\n if (!nullBitmap || vector.nullCount <= 0) {\n return -1;\n }\n let i = 0;\n for (const isValid of iterateBits(nullBitmap, vector.data.offset + (fromIndex || 0), vector.length, nullBitmap, getBool)) {\n if (!isValid) { return i; }\n ++i;\n }\n return -1;\n}\n\n/** @ignore */\nfunction indexOfValue(vector: VectorType, searchElement?: T['TValue'] | null, fromIndex?: number): number {\n if (searchElement === undefined) { return -1; }\n if (searchElement === null) { return indexOfNull(vector, fromIndex); }\n const compare = createElementComparator(searchElement);\n for (let i = (fromIndex || 0) - 1, n = vector.length; ++i < n;) {\n if (compare(vector.get(i))) {\n return i;\n }\n }\n return -1;\n}\n\n/** @ignore */\nfunction indexOfUnion(vector: VectorType, searchElement?: T['TValue'] | null, fromIndex?: number): number {\n // Unions are special -- they do have a nullBitmap, but so can their children.\n // If the searchElement is null, we don't know whether it came from the Union's\n // bitmap or one of its childrens'. So we don't interrogate the Union's bitmap,\n // since that will report the wrong index if a child has a null before the Union.\n const compare = createElementComparator(searchElement);\n for (let i = (fromIndex || 0) - 1, n = vector.length; ++i < n;) {\n if (compare(vector.get(i))) {\n return i;\n }\n }\n return -1;\n}\n\nIndexOfVisitor.prototype.visitNull = nullIndexOf;\nIndexOfVisitor.prototype.visitBool = indexOfValue;\nIndexOfVisitor.prototype.visitInt = indexOfValue;\nIndexOfVisitor.prototype.visitInt8 = indexOfValue;\nIndexOfVisitor.prototype.visitInt16 = indexOfValue;\nIndexOfVisitor.prototype.visitInt32 = indexOfValue;\nIndexOfVisitor.prototype.visitInt64 = indexOfValue;\nIndexOfVisitor.prototype.visitUint8 = indexOfValue;\nIndexOfVisitor.prototype.visitUint16 = indexOfValue;\nIndexOfVisitor.prototype.visitUint32 = indexOfValue;\nIndexOfVisitor.prototype.visitUint64 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat = indexOfValue;\nIndexOfVisitor.prototype.visitFloat16 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat32 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat64 = indexOfValue;\nIndexOfVisitor.prototype.visitUtf8 = indexOfValue;\nIndexOfVisitor.prototype.visitBinary = indexOfValue;\nIndexOfVisitor.prototype.visitFixedSizeBinary = indexOfValue;\nIndexOfVisitor.prototype.visitDate = indexOfValue;\nIndexOfVisitor.prototype.visitDateDay = indexOfValue;\nIndexOfVisitor.prototype.visitDateMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestamp = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampSecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampMicrosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampNanosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTime = indexOfValue;\nIndexOfVisitor.prototype.visitTimeSecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeMicrosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeNanosecond = indexOfValue;\nIndexOfVisitor.prototype.visitDecimal = indexOfValue;\nIndexOfVisitor.prototype.visitList = indexOfValue;\nIndexOfVisitor.prototype.visitStruct = indexOfValue;\nIndexOfVisitor.prototype.visitUnion = indexOfValue;\nIndexOfVisitor.prototype.visitDenseUnion = indexOfUnion;\nIndexOfVisitor.prototype.visitSparseUnion = indexOfUnion;\nIndexOfVisitor.prototype.visitDictionary = indexOfValue;\nIndexOfVisitor.prototype.visitInterval = indexOfValue;\nIndexOfVisitor.prototype.visitIntervalDayTime = indexOfValue;\nIndexOfVisitor.prototype.visitIntervalYearMonth = indexOfValue;\nIndexOfVisitor.prototype.visitFixedSizeList = indexOfValue;\nIndexOfVisitor.prototype.visitMap = indexOfValue;\n\n/** @ignore */\nexport const instance = new IndexOfVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { iterateBits } from '../util/bit';\nimport { instance as getVisitor } from './get';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface IteratorVisitor extends Visitor {\n visit(node: T): IterableIterator;\n visitMany (nodes: T[]): IterableIterator[];\n getVisitFn(node: T): (vector: VectorType) => IterableIterator['TValue'] | null>;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType) => IterableIterator['TValue'] | null>;\n visitNull (vector: VectorType): IterableIterator;\n visitBool (vector: VectorType): IterableIterator;\n visitInt (vector: VectorType): IterableIterator;\n visitInt8 (vector: VectorType): IterableIterator;\n visitInt16 (vector: VectorType): IterableIterator;\n visitInt32 (vector: VectorType): IterableIterator;\n visitInt64 (vector: VectorType): IterableIterator;\n visitUint8 (vector: VectorType): IterableIterator;\n visitUint16 (vector: VectorType): IterableIterator;\n visitUint32 (vector: VectorType): IterableIterator;\n visitUint64 (vector: VectorType): IterableIterator;\n visitFloat (vector: VectorType): IterableIterator;\n visitFloat16 (vector: VectorType): IterableIterator;\n visitFloat32 (vector: VectorType): IterableIterator;\n visitFloat64 (vector: VectorType): IterableIterator;\n visitUtf8 (vector: VectorType): IterableIterator;\n visitBinary (vector: VectorType): IterableIterator;\n visitFixedSizeBinary (vector: VectorType): IterableIterator;\n visitDate (vector: VectorType): IterableIterator;\n visitDateDay (vector: VectorType): IterableIterator;\n visitDateMillisecond (vector: VectorType): IterableIterator;\n visitTimestamp (vector: VectorType): IterableIterator;\n visitTimestampSecond (vector: VectorType): IterableIterator;\n visitTimestampMillisecond (vector: VectorType): IterableIterator;\n visitTimestampMicrosecond (vector: VectorType): IterableIterator;\n visitTimestampNanosecond (vector: VectorType): IterableIterator;\n visitTime (vector: VectorType): IterableIterator;\n visitTimeSecond (vector: VectorType): IterableIterator;\n visitTimeMillisecond (vector: VectorType): IterableIterator;\n visitTimeMicrosecond (vector: VectorType): IterableIterator;\n visitTimeNanosecond (vector: VectorType): IterableIterator;\n visitDecimal (vector: VectorType): IterableIterator;\n visitList (vector: VectorType): IterableIterator;\n visitStruct (vector: VectorType): IterableIterator;\n visitUnion (vector: VectorType): IterableIterator;\n visitDenseUnion (vector: VectorType): IterableIterator;\n visitSparseUnion (vector: VectorType): IterableIterator;\n visitDictionary (vector: VectorType): IterableIterator;\n visitInterval (vector: VectorType): IterableIterator;\n visitIntervalDayTime (vector: VectorType): IterableIterator;\n visitIntervalYearMonth (vector: VectorType): IterableIterator;\n visitFixedSizeList (vector: VectorType): IterableIterator;\n visitMap (vector: VectorType): IterableIterator;\n}\n\n/** @ignore */\nexport class IteratorVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullableIterator(vector: VectorType): IterableIterator {\n const getFn = getVisitor.getVisitFn(vector);\n return iterateBits(\n vector.nullBitmap, vector.offset, vector.length, vector,\n (vec: VectorType, idx: number, nullByte: number, nullBit: number) =>\n ((nullByte & 1 << nullBit) !== 0) ? getFn(vec, idx) : null\n );\n}\n\n/** @ignore */\nfunction vectorIterator(vector: VectorType): IterableIterator {\n\n // If nullable, iterate manually\n if (vector.nullCount > 0) {\n return nullableIterator(vector);\n }\n\n const { type, typeId, length } = vector;\n\n // Fast case, defer to native iterators if possible\n if (vector.stride === 1 && (\n (typeId === Type.Timestamp) ||\n (typeId === Type.Int && (type as Int).bitWidth !== 64) ||\n (typeId === Type.Time && (type as Time).bitWidth !== 64) ||\n (typeId === Type.Float && (type as Float).precision > 0 /* Precision.HALF */)\n )) {\n return vector.values.subarray(0, length)[Symbol.iterator]();\n }\n\n // Otherwise, iterate manually\n return (function* (getFn) {\n for (let index = -1; ++index < length;) {\n yield getFn(vector, index);\n }\n })(getVisitor.getVisitFn(vector));\n}\n\nIteratorVisitor.prototype.visitNull = vectorIterator;\nIteratorVisitor.prototype.visitBool = vectorIterator;\nIteratorVisitor.prototype.visitInt = vectorIterator;\nIteratorVisitor.prototype.visitInt8 = vectorIterator;\nIteratorVisitor.prototype.visitInt16 = vectorIterator;\nIteratorVisitor.prototype.visitInt32 = vectorIterator;\nIteratorVisitor.prototype.visitInt64 = vectorIterator;\nIteratorVisitor.prototype.visitUint8 = vectorIterator;\nIteratorVisitor.prototype.visitUint16 = vectorIterator;\nIteratorVisitor.prototype.visitUint32 = vectorIterator;\nIteratorVisitor.prototype.visitUint64 = vectorIterator;\nIteratorVisitor.prototype.visitFloat = vectorIterator;\nIteratorVisitor.prototype.visitFloat16 = vectorIterator;\nIteratorVisitor.prototype.visitFloat32 = vectorIterator;\nIteratorVisitor.prototype.visitFloat64 = vectorIterator;\nIteratorVisitor.prototype.visitUtf8 = vectorIterator;\nIteratorVisitor.prototype.visitBinary = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeBinary = vectorIterator;\nIteratorVisitor.prototype.visitDate = vectorIterator;\nIteratorVisitor.prototype.visitDateDay = vectorIterator;\nIteratorVisitor.prototype.visitDateMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestamp = vectorIterator;\nIteratorVisitor.prototype.visitTimestampSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitTime = vectorIterator;\nIteratorVisitor.prototype.visitTimeSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitDecimal = vectorIterator;\nIteratorVisitor.prototype.visitList = vectorIterator;\nIteratorVisitor.prototype.visitStruct = vectorIterator;\nIteratorVisitor.prototype.visitUnion = vectorIterator;\nIteratorVisitor.prototype.visitDenseUnion = vectorIterator;\nIteratorVisitor.prototype.visitSparseUnion = vectorIterator;\nIteratorVisitor.prototype.visitDictionary = vectorIterator;\nIteratorVisitor.prototype.visitInterval = vectorIterator;\nIteratorVisitor.prototype.visitIntervalDayTime = vectorIterator;\nIteratorVisitor.prototype.visitIntervalYearMonth = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeList = vectorIterator;\nIteratorVisitor.prototype.visitMap = vectorIterator;\n\n/** @ignore */\nexport const instance = new IteratorVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { instance as iteratorVisitor } from './iterator';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface ToArrayVisitor extends Visitor {\n visit(node: T): T['TArray'];\n visitMany(nodes: T[]): T['TArray'][];\n getVisitFn(node: T): (vector: VectorType) => VectorType['TArray'];\n getVisitFn(node: VectorType | Data | T): (vector: VectorType) => VectorType['TArray'];\n visitNull (vector: VectorType): VectorType['TArray'];\n visitBool (vector: VectorType): VectorType['TArray'];\n visitInt (vector: VectorType): VectorType['TArray'];\n visitInt8 (vector: VectorType): VectorType['TArray'];\n visitInt16 (vector: VectorType): VectorType['TArray'];\n visitInt32 (vector: VectorType): VectorType['TArray'];\n visitInt64 (vector: VectorType): VectorType['TArray'];\n visitUint8 (vector: VectorType): VectorType['TArray'];\n visitUint16 (vector: VectorType): VectorType['TArray'];\n visitUint32 (vector: VectorType): VectorType['TArray'];\n visitUint64 (vector: VectorType): VectorType['TArray'];\n visitFloat (vector: VectorType): VectorType['TArray'];\n visitFloat16 (vector: VectorType): VectorType['TArray'];\n visitFloat32 (vector: VectorType): VectorType['TArray'];\n visitFloat64 (vector: VectorType): VectorType['TArray'];\n visitUtf8 (vector: VectorType): VectorType['TArray'];\n visitBinary (vector: VectorType): VectorType['TArray'];\n visitFixedSizeBinary (vector: VectorType): VectorType['TArray'];\n visitDate (vector: VectorType): VectorType['TArray'];\n visitDateDay (vector: VectorType): VectorType['TArray'];\n visitDateMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestamp (vector: VectorType): VectorType['TArray'];\n visitTimestampSecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimestampNanosecond (vector: VectorType): VectorType['TArray'];\n visitTime (vector: VectorType): VectorType['TArray'];\n visitTimeSecond (vector: VectorType): VectorType['TArray'];\n visitTimeMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimeMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimeNanosecond (vector: VectorType): VectorType['TArray'];\n visitDecimal (vector: VectorType): VectorType['TArray'];\n visitList > (vector: VectorType): VectorType['TArray'];\n visitStruct (vector: VectorType): VectorType['TArray'];\n visitUnion (vector: VectorType): VectorType['TArray'];\n visitDenseUnion (vector: VectorType): VectorType['TArray'];\n visitSparseUnion (vector: VectorType): VectorType['TArray'];\n visitDictionary > (vector: VectorType): VectorType['TArray'];\n visitInterval (vector: VectorType): VectorType['TArray'];\n visitIntervalDayTime (vector: VectorType): VectorType['TArray'];\n visitIntervalYearMonth (vector: VectorType): VectorType['TArray'];\n visitFixedSizeList > (vector: VectorType): VectorType['TArray'];\n visitMap (vector: VectorType): VectorType['TArray'];\n}\n\n/** @ignore */\nexport class ToArrayVisitor extends Visitor {}\n\n/** @ignore */\nfunction arrayOfVector(vector: VectorType): T['TArray'] {\n\n const { type, length, stride } = vector;\n\n // Fast case, return subarray if possible\n switch (type.typeId) {\n case Type.Int:\n case Type.Float: case Type.Decimal:\n case Type.Time: case Type.Timestamp:\n return vector.values.subarray(0, length * stride);\n }\n\n // Otherwise if not primitive, slow copy\n return [...iteratorVisitor.visit(vector)] as T['TArray'];\n}\n\nToArrayVisitor.prototype.visitNull = arrayOfVector;\nToArrayVisitor.prototype.visitBool = arrayOfVector;\nToArrayVisitor.prototype.visitInt = arrayOfVector;\nToArrayVisitor.prototype.visitInt8 = arrayOfVector;\nToArrayVisitor.prototype.visitInt16 = arrayOfVector;\nToArrayVisitor.prototype.visitInt32 = arrayOfVector;\nToArrayVisitor.prototype.visitInt64 = arrayOfVector;\nToArrayVisitor.prototype.visitUint8 = arrayOfVector;\nToArrayVisitor.prototype.visitUint16 = arrayOfVector;\nToArrayVisitor.prototype.visitUint32 = arrayOfVector;\nToArrayVisitor.prototype.visitUint64 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat = arrayOfVector;\nToArrayVisitor.prototype.visitFloat16 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat32 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat64 = arrayOfVector;\nToArrayVisitor.prototype.visitUtf8 = arrayOfVector;\nToArrayVisitor.prototype.visitBinary = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeBinary = arrayOfVector;\nToArrayVisitor.prototype.visitDate = arrayOfVector;\nToArrayVisitor.prototype.visitDateDay = arrayOfVector;\nToArrayVisitor.prototype.visitDateMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestamp = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTime = arrayOfVector;\nToArrayVisitor.prototype.visitTimeSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitDecimal = arrayOfVector;\nToArrayVisitor.prototype.visitList = arrayOfVector;\nToArrayVisitor.prototype.visitStruct = arrayOfVector;\nToArrayVisitor.prototype.visitUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDenseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitSparseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDictionary = arrayOfVector;\nToArrayVisitor.prototype.visitInterval = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalDayTime = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalYearMonth = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeList = arrayOfVector;\nToArrayVisitor.prototype.visitMap = arrayOfVector;\n\n/** @ignore */\nexport const instance = new ToArrayVisitor();\n","/* istanbul ignore file */\n\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { Type, TimeUnit } from '../enum';\nimport { Schema, Field } from '../schema';\nimport {\n DataType, Dictionary,\n Float, Int, Date_, Interval, Time, Timestamp,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n} from '../type';\n\n/** @ignore */ const sum = (x: number, y: number) => x + y;\n/** @ignore */ const variableWidthColumnErrorMessage = (type: DataType) => `Cannot compute the byte width of variable-width column ${type}`;\n\n/** @ignore */\nexport interface ByteWidthVisitor extends Visitor {\n visit(node: T): number;\n visitMany(nodes: T[]): number[];\n getVisitFn (node: T): (type: DataType) => number;\n getVisitFn(node: VectorType | Data | T): (type: T) => number;\n}\n\n/** @ignore */\nexport class ByteWidthVisitor extends Visitor {\n public visitNull (____: Null ) { return 0; }\n public visitInt (type: Int ) { return type.bitWidth / 8; }\n public visitFloat (type: Float ) { return type.ArrayType.BYTES_PER_ELEMENT; }\n public visitBinary (type: Binary ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitUtf8 (type: Utf8 ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitBool (____: Bool ) { return 1 / 8; }\n public visitDecimal (____: Decimal ) { return 16; }\n public visitDate (type: Date_ ) { return (type.unit + 1) * 4; }\n public visitTime (type: Time ) { return type.bitWidth / 8; }\n public visitTimestamp (type: Timestamp ) { return type.unit === TimeUnit.SECOND ? 4 : 8; }\n public visitInterval (type: Interval ) { return (type.unit + 1) * 4; }\n public visitList (type: List ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitStruct (type: Struct ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitUnion (type: Union ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitFixedSizeBinary (type: FixedSizeBinary ) { return type.byteWidth; }\n public visitFixedSizeList (type: FixedSizeList ) { return type.listSize * this.visitFields(type.children).reduce(sum, 0); }\n public visitMap (type: Map_ ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitDictionary (type: Dictionary ) { return this.visit(type.indices); }\n public visitFields (fields: Field[] ) { return (fields || []).map((field) => this.visit(field.type)); }\n public visitSchema (schema: Schema ) { return this.visitFields(schema.fields).reduce(sum, 0); }\n}\n\n/** @ignore */\nexport const instance = new ByteWidthVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { VectorType, VectorCtor } from '../interfaces';\n\nimport { BinaryVector } from '../vector/binary';\nimport { BoolVector } from '../vector/bool';\nimport { DateVector, DateDayVector, DateMillisecondVector } from '../vector/date';\nimport { DecimalVector } from '../vector/decimal';\nimport { DictionaryVector } from '../vector/dictionary';\nimport { FixedSizeBinaryVector } from '../vector/fixedsizebinary';\nimport { FixedSizeListVector } from '../vector/fixedsizelist';\nimport { FloatVector, Float16Vector, Float32Vector, Float64Vector } from '../vector/float';\nimport { IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector } from '../vector/interval';\nimport { IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector } from '../vector/int';\nimport { ListVector } from '../vector/list';\nimport { MapVector } from '../vector/map';\nimport { NullVector } from '../vector/null';\nimport { StructVector } from '../vector/struct';\nimport { TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector } from '../vector/timestamp';\nimport { TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector } from '../vector/time';\nimport { UnionVector, DenseUnionVector, SparseUnionVector } from '../vector/union';\nimport { Utf8Vector } from '../vector/utf8';\n\n/** @ignore */\nexport interface GetVectorConstructor extends Visitor {\n visit(node: T): VectorCtor;\n visitMany (nodes: T[]): VectorCtor[];\n getVisitFn(node: T): () => VectorCtor;\n getVisitFn(node: VectorType | Data | T): () => VectorCtor;\n}\n\n/** @ignore */\nexport class GetVectorConstructor extends Visitor {\n public visitNull () { return NullVector; }\n public visitBool () { return BoolVector; }\n public visitInt () { return IntVector; }\n public visitInt8 () { return Int8Vector; }\n public visitInt16 () { return Int16Vector; }\n public visitInt32 () { return Int32Vector; }\n public visitInt64 () { return Int64Vector; }\n public visitUint8 () { return Uint8Vector; }\n public visitUint16 () { return Uint16Vector; }\n public visitUint32 () { return Uint32Vector; }\n public visitUint64 () { return Uint64Vector; }\n public visitFloat () { return FloatVector; }\n public visitFloat16 () { return Float16Vector; }\n public visitFloat32 () { return Float32Vector; }\n public visitFloat64 () { return Float64Vector; }\n public visitUtf8 () { return Utf8Vector; }\n public visitBinary () { return BinaryVector; }\n public visitFixedSizeBinary () { return FixedSizeBinaryVector; }\n public visitDate () { return DateVector; }\n public visitDateDay () { return DateDayVector; }\n public visitDateMillisecond () { return DateMillisecondVector; }\n public visitTimestamp () { return TimestampVector; }\n public visitTimestampSecond () { return TimestampSecondVector; }\n public visitTimestampMillisecond () { return TimestampMillisecondVector; }\n public visitTimestampMicrosecond () { return TimestampMicrosecondVector; }\n public visitTimestampNanosecond () { return TimestampNanosecondVector; }\n public visitTime () { return TimeVector; }\n public visitTimeSecond () { return TimeSecondVector; }\n public visitTimeMillisecond () { return TimeMillisecondVector; }\n public visitTimeMicrosecond () { return TimeMicrosecondVector; }\n public visitTimeNanosecond () { return TimeNanosecondVector; }\n public visitDecimal () { return DecimalVector; }\n public visitList () { return ListVector; }\n public visitStruct () { return StructVector; }\n public visitUnion () { return UnionVector; }\n public visitDenseUnion () { return DenseUnionVector; }\n public visitSparseUnion () { return SparseUnionVector; }\n public visitDictionary () { return DictionaryVector; }\n public visitInterval () { return IntervalVector; }\n public visitIntervalDayTime () { return IntervalDayTimeVector; }\n public visitIntervalYearMonth () { return IntervalYearMonthVector; }\n public visitFixedSizeList () { return FixedSizeListVector; }\n public visitMap () { return MapVector; }\n}\n\n/** @ignore */\nexport const instance = new GetVectorConstructor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nexport { Vector } from '../vector';\nexport { BaseVector } from './base';\nexport { BinaryVector } from './binary';\nexport { BoolVector } from './bool';\nexport { Chunked } from './chunked';\nexport { DateVector, DateDayVector, DateMillisecondVector } from './date';\nexport { DecimalVector } from './decimal';\nexport { DictionaryVector } from './dictionary';\nexport { FixedSizeBinaryVector } from './fixedsizebinary';\nexport { FixedSizeListVector } from './fixedsizelist';\nexport { FloatVector, Float16Vector, Float32Vector, Float64Vector } from './float';\nexport { IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector } from './interval';\nexport { IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector } from './int';\nexport { ListVector } from './list';\nexport { MapVector } from './map';\nexport { NullVector } from './null';\nexport { StructVector } from './struct';\nexport { TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector } from './timestamp';\nexport { TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector } from './time';\nexport { UnionVector, DenseUnionVector, SparseUnionVector } from './union';\nexport { Utf8Vector } from './utf8';\nexport { MapRow, StructRow } from './row';\n\nimport * as fn from '../util/fn';\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { setBool } from '../util/bit';\nimport { isIterable, isAsyncIterable } from '../util/compat';\nimport { Builder, IterableBuilderOptions } from '../builder';\nimport { VectorType as V, VectorCtorArgs } from '../interfaces';\nimport { instance as getVisitor } from '../visitor/get';\nimport { instance as setVisitor } from '../visitor/set';\nimport { instance as indexOfVisitor } from '../visitor/indexof';\nimport { instance as toArrayVisitor } from '../visitor/toarray';\nimport { instance as iteratorVisitor } from '../visitor/iterator';\nimport { instance as byteWidthVisitor } from '../visitor/bytewidth';\nimport { instance as getVectorConstructor } from '../visitor/vectorctor';\n\ndeclare module '../vector' {\n namespace Vector {\n export { newVector as new };\n export { vectorFrom as from };\n }\n}\n\ndeclare module './base' {\n namespace BaseVector {\n export { vectorFrom as from };\n }\n interface BaseVector {\n get(index: number): T['TValue'] | null;\n set(index: number, value: T['TValue'] | null): void;\n indexOf(value: T['TValue'] | null, fromIndex?: number): number;\n toArray(): T['TArray'];\n getByteWidth(): number;\n [Symbol.iterator](): IterableIterator;\n }\n}\n\n/** @nocollapse */\nVector.new = newVector;\n\n/** @nocollapse */\nVector.from = vectorFrom;\n\n/** @ignore */\nfunction newVector(data: Data, ...args: VectorCtorArgs>): V {\n return new (getVectorConstructor.getVisitFn(data)())(data, ...args) as V;\n}\n\n/** @ignore */\nexport interface VectorBuilderOptions extends IterableBuilderOptions { values: Iterable; }\n/** @ignore */\nexport interface VectorBuilderOptionsAsync extends IterableBuilderOptions { values: AsyncIterable; }\n\n/** @ignore */\nexport function vectorFromValuesWithType(newDataType: () => T, input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n if (isIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as V;\n } else if (isAsyncIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as Promise>;\n }\n const {\n 'values': values = [],\n 'type': type = newDataType(),\n 'nullValues': nullValues = [null, undefined],\n } = { ...input };\n return isIterable(values)\n ? Vector.from({ nullValues, ...input, type } as VectorBuilderOptions)\n : Vector.from({ nullValues, ...input, type } as VectorBuilderOptionsAsync);\n}\n\n/** @ignore */\nfunction vectorFrom(input: VectorBuilderOptions): Vector;\nfunction vectorFrom(input: VectorBuilderOptionsAsync): Promise>;\nfunction vectorFrom(input: VectorBuilderOptions | VectorBuilderOptionsAsync) {\n const { 'values': values = [], ...options } = { 'nullValues': [null, undefined], ...input } as VectorBuilderOptions | VectorBuilderOptionsAsync;\n if (isIterable(values)) {\n const chunks = [...Builder.throughIterable(options)(values)];\n return chunks.length === 1 ? chunks[0] : Chunked.concat(chunks);\n }\n return (async (chunks: V[]) => {\n const transform = Builder.throughAsyncIterable(options);\n for await (const chunk of transform(values)) {\n chunks.push(chunk);\n }\n return chunks.length === 1 ? chunks[0] : Chunked.concat(chunks);\n })([]);\n}\n\n//\n// We provide the following method implementations for code navigability purposes only.\n// They're overridden at runtime below with the specific Visitor implementation for each type,\n// short-circuiting the usual Visitor traversal and reducing intermediate lookups and calls.\n// This comment is here to remind you to not set breakpoints in these function bodies, or to inform\n// you why the breakpoints you have already set are not being triggered. Have a great day!\n//\n\nBaseVector.prototype.get = function baseVectorGet(this: BaseVector, index: number): T['TValue'] | null {\n return getVisitor.visit(this, index);\n};\n\nBaseVector.prototype.set = function baseVectorSet(this: BaseVector, index: number, value: T['TValue'] | null): void {\n return setVisitor.visit(this, index, value);\n};\n\nBaseVector.prototype.indexOf = function baseVectorIndexOf(this: BaseVector, value: T['TValue'] | null, fromIndex?: number): number {\n return indexOfVisitor.visit(this, value, fromIndex);\n};\n\nBaseVector.prototype.toArray = function baseVectorToArray(this: BaseVector): T['TArray'] {\n return toArrayVisitor.visit(this);\n};\n\nBaseVector.prototype.getByteWidth = function baseVectorGetByteWidth(this: BaseVector): number {\n return byteWidthVisitor.visit(this.type);\n};\n\nBaseVector.prototype[Symbol.iterator] = function baseVectorSymbolIterator(this: BaseVector): IterableIterator {\n return iteratorVisitor.visit(this);\n};\n\n(BaseVector.prototype as any)._bindDataAccessors = bindBaseVectorDataAccessors;\n\n// Perf: bind and assign the operator Visitor methods to each of the Vector subclasses for each Type\n(Object.keys(Type) as any[])\n .map((T: any) => Type[T] as any)\n .filter((T: any): T is Type => typeof T === 'number')\n .filter((typeId) => typeId !== Type.NONE)\n .forEach((typeId) => {\n const VectorCtor = getVectorConstructor.visit(typeId);\n VectorCtor.prototype['get'] = fn.partial1(getVisitor.getVisitFn(typeId));\n VectorCtor.prototype['set'] = fn.partial2(setVisitor.getVisitFn(typeId));\n VectorCtor.prototype['indexOf'] = fn.partial2(indexOfVisitor.getVisitFn(typeId));\n VectorCtor.prototype['toArray'] = fn.partial0(toArrayVisitor.getVisitFn(typeId));\n VectorCtor.prototype['getByteWidth'] = partialType0(byteWidthVisitor.getVisitFn(typeId));\n VectorCtor.prototype[Symbol.iterator] = fn.partial0(iteratorVisitor.getVisitFn(typeId));\n });\n\n/** @ignore */\nfunction partialType0(visit: (node: T['type']) => any) {\n return function(this: T) { return visit(this.type); };\n}\n\n/** @ignore */\nfunction wrapNullableGet, F extends (i: number) => any>(fn: F): (...args: Parameters) => ReturnType {\n return function(this: V, i: number) { return this.isValid(i) ? fn.call(this, i) : null; };\n}\n\n/** @ignore */\nfunction wrapNullableSet, F extends (i: number, a: any) => void>(fn: F): (...args: Parameters) => void {\n return function(this: V, i: number, a: any) {\n if (setBool(this.nullBitmap, this.offset + i, !(a === null || a === undefined))) {\n fn.call(this, i, a);\n }\n };\n}\n\n/** @ignore */\nfunction bindBaseVectorDataAccessors(this: BaseVector) {\n const nullBitmap = this.nullBitmap;\n if (nullBitmap && nullBitmap.byteLength > 0) {\n this.get = wrapNullableGet(this.get);\n this.set = wrapNullableSet(this.set);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Column } from './column';\nimport { Schema, Field } from './schema';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from './recordbatch';\nimport { DataFrame } from './compute/dataframe';\nimport { RecordBatchReader } from './ipc/reader';\nimport { DataType, RowLike, Struct } from './type';\nimport { selectColumnArgs, selectArgs } from './util/args';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { isPromise, isIterable, isAsyncIterable } from './util/compat';\nimport { RecordBatchFileWriter, RecordBatchStreamWriter } from './ipc/writer';\nimport { distributeColumnsIntoRecordBatches, distributeVectorsIntoRecordBatches } from './util/recordbatch';\nimport { Vector, Chunked, StructVector, VectorBuilderOptions, VectorBuilderOptionsAsync } from './vector/index';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = Data[] | Vector[];\ntype Columns = Column[] | Column[][];\n\nexport interface Table {\n\n get(index: number): Struct['TValue'];\n [Symbol.iterator](): IterableIterator>;\n\n slice(begin?: number, end?: number): Table;\n concat(...others: Vector>[]): Table;\n clone(chunks?: RecordBatch[], offsets?: Uint32Array): Table;\n\n scan(next: import('./compute/dataframe').NextFunc, bind?: import('./compute/dataframe').BindFunc): void;\n scanReverse(next: import('./compute/dataframe').NextFunc, bind?: import('./compute/dataframe').BindFunc): void;\n countBy(name: import('./compute/predicate').Col | string): import('./compute/dataframe').CountByResult;\n filter(predicate: import('./compute/predicate').Predicate): import('./compute/dataframe').FilteredDataFrame;\n}\n\nexport class Table\n extends Chunked>\n implements DataFrame,\n Clonable>,\n Sliceable>,\n Applicative, Table> {\n\n /** @nocollapse */\n public static empty(schema = new Schema([])) { return new Table(schema, []); }\n\n public static from(): Table<{}>;\n public static from(source: RecordBatchReader): Table;\n public static from(source: import('./ipc/reader').FromArg0): Table;\n public static from(source: import('./ipc/reader').FromArg2): Table;\n public static from(source: import('./ipc/reader').FromArg1): Promise>;\n public static from(source: import('./ipc/reader').FromArg3): Promise>;\n public static from(source: import('./ipc/reader').FromArg4): Promise>;\n public static from(source: import('./ipc/reader').FromArg5): Promise>;\n public static from(source: PromiseLike>): Promise>;\n public static from(options: VectorBuilderOptions, TNull>): Table;\n public static from(options: VectorBuilderOptionsAsync, TNull>): Promise>;\n /** @nocollapse */\n public static from(input?: any) {\n\n if (!input) { return Table.empty(); }\n\n if (typeof input === 'object') {\n let table = isIterable(input['values']) ? tableFromIterable(input)\n : isAsyncIterable(input['values']) ? tableFromAsyncIterable(input)\n : null;\n if (table !== null) { return table; }\n }\n\n let reader = RecordBatchReader.from(input) as RecordBatchReader | Promise>;\n\n if (isPromise>(reader)) {\n return (async () => await Table.from(await reader))();\n }\n if (reader.isSync() && (reader = reader.open())) {\n return !reader.schema ? Table.empty() : new Table(reader.schema, [...reader]);\n }\n return (async (opening) => {\n const reader = await opening;\n const schema = reader.schema;\n const batches: RecordBatch[] = [];\n if (schema) {\n for await (let batch of reader) {\n batches.push(batch);\n }\n return new Table(schema, batches);\n }\n return Table.empty();\n })(reader.open());\n }\n\n /** @nocollapse */\n public static async fromAsync(source: import('./ipc/reader').FromArgs): Promise> {\n return await Table.from(source as any);\n }\n\n /** @nocollapse */\n public static fromStruct(vector: Vector>) {\n return Table.new(vector.data.childData as Data[], vector.type.children);\n }\n\n /**\n * @summary Create a new Table from a collection of Columns or Vectors,\n * with an optional list of names or Fields.\n *\n *\n * `Table.new` accepts an Object of\n * Columns or Vectors, where the keys will be used as the field names\n * for the Schema:\n * ```ts\n * const i32s = Int32Vector.from([1, 2, 3]);\n * const f32s = Float32Vector.from([.1, .2, .3]);\n * const table = Table.new({ i32: i32s, f32: f32s });\n * assert(table.schema.fields[0].name === 'i32');\n * ```\n *\n * It also accepts a a list of Vectors with an optional list of names or\n * Fields for the resulting Schema. If the list is omitted or a name is\n * missing, the numeric index of each Vector will be used as the name:\n * ```ts\n * const i32s = Int32Vector.from([1, 2, 3]);\n * const f32s = Float32Vector.from([.1, .2, .3]);\n * const table = Table.new([i32s, f32s], ['i32']);\n * assert(table.schema.fields[0].name === 'i32');\n * assert(table.schema.fields[1].name === '1');\n * ```\n *\n * If the supplied arguments are Columns, `Table.new` will infer the Schema\n * from the Columns:\n * ```ts\n * const i32s = Column.new('i32', Int32Vector.from([1, 2, 3]));\n * const f32s = Column.new('f32', Float32Vector.from([.1, .2, .3]));\n * const table = Table.new(i32s, f32s);\n * assert(table.schema.fields[0].name === 'i32');\n * assert(table.schema.fields[1].name === 'f32');\n * ```\n *\n * If the supplied Vector or Column lengths are unequal, `Table.new` will\n * extend the lengths of the shorter Columns, allocating additional bytes\n * to represent the additional null slots. The memory required to allocate\n * these additional bitmaps can be computed as:\n * ```ts\n * let additionalBytes = 0;\n * for (let vec in shorter_vectors) {\n * additionalBytes += (((longestLength - vec.length) + 63) & ~63) >> 3;\n * }\n * ```\n *\n * For example, an additional null bitmap for one million null values would require\n * 125,000 bytes (`((1e6 + 63) & ~63) >> 3`), or approx. `0.11MiB`\n */\n public static new(...columns: Columns): Table;\n public static new(children: T): Table<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): Table;\n /** @nocollapse */\n public static new(...cols: any[]) {\n return new Table(...distributeColumnsIntoRecordBatches(selectColumnArgs(cols)));\n }\n\n constructor(batches: RecordBatch[]);\n constructor(...batches: RecordBatch[]);\n constructor(schema: Schema, batches: RecordBatch[]);\n constructor(schema: Schema, ...batches: RecordBatch[]);\n constructor(...args: any[]) {\n\n let schema: Schema = null!;\n\n if (args[0] instanceof Schema) { schema = args.shift(); }\n\n let chunks = selectArgs>(RecordBatch, args);\n\n if (!schema && !(schema = chunks[0] && chunks[0].schema)) {\n throw new TypeError('Table must be initialized with a Schema or at least one RecordBatch');\n }\n\n chunks[0] || (chunks[0] = new _InternalEmptyPlaceholderRecordBatch(schema));\n\n super(new Struct(schema.fields), chunks);\n\n this._schema = schema;\n this._chunks = chunks;\n }\n\n protected _schema: Schema;\n // List of inner RecordBatches\n protected _chunks: RecordBatch[];\n protected _children?: Column[];\n\n public get schema() { return this._schema; }\n public get length() { return this._length; }\n public get chunks() { return this._chunks; }\n public get numCols() { return this._numChildren; }\n\n public clone(chunks = this._chunks) {\n return new Table(this._schema, chunks);\n }\n\n public getColumn(name: R): Column {\n return this.getColumnAt(this.getColumnIndex(name)) as Column;\n }\n public getColumnAt(index: number): Column | null {\n return this.getChildAt(index);\n }\n public getColumnIndex(name: R) {\n return this._schema.fields.findIndex((f) => f.name === name);\n }\n public getChildAt(index: number): Column | null {\n if (index < 0 || index >= this.numChildren) { return null; }\n let field: Field, child: Column;\n const fields = (this._schema as Schema).fields;\n const columns = this._children || (this._children = []) as Column[];\n if (child = columns[index]) { return child as Column; }\n if (field = fields[index]) {\n const chunks = this._chunks\n .map((chunk) => chunk.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column(field, chunks));\n }\n }\n return null;\n }\n\n // @ts-ignore\n public serialize(encoding = 'binary', stream = true) {\n const Writer = !stream\n ? RecordBatchFileWriter\n : RecordBatchStreamWriter;\n return Writer.writeAll(this).toUint8Array(true);\n }\n public count(): number {\n return this._length;\n }\n public select(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt(...columnIndices: number[]) {\n const schema = this._schema.selectAt(...columnIndices);\n return new Table(schema, this._chunks.map(({ length, data: { childData } }) => {\n return new RecordBatch(schema, length, columnIndices.map((i) => childData[i]).filter(Boolean));\n }));\n }\n public assign(other: Table) {\n\n const fields = this._schema.fields;\n const [indices, oldToNew] = other.schema.fields.reduce((memo, f2, newIdx) => {\n const [indices, oldToNew] = memo;\n const i = fields.findIndex((f) => f.name === f2.name);\n ~i ? (oldToNew[i] = newIdx) : indices.push(newIdx);\n return memo;\n }, [[], []] as number[][]);\n\n const schema = this._schema.assign(other.schema);\n const columns = [\n ...fields.map((_f, i, _fs, j = oldToNew[i]) =>\n (j === undefined ? this.getColumnAt(i) : other.getColumnAt(j))!),\n ...indices.map((i) => other.getColumnAt(i)!)\n ].filter(Boolean) as Column<(T & R)[keyof T | keyof R]>[];\n\n return new Table(...distributeVectorsIntoRecordBatches(schema, columns));\n }\n}\n\nfunction tableFromIterable(input: VectorBuilderOptions, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return Table.fromStruct(StructVector.from(input as VectorBuilderOptions, TNull>));\n }\n return null;\n}\n\nfunction tableFromAsyncIterable(input: VectorBuilderOptionsAsync, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return StructVector.from(input as VectorBuilderOptionsAsync, TNull>).then((vector) => Table.fromStruct(vector));\n }\n return null;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Table } from './table';\nimport { Vector } from './vector';\nimport { Visitor } from './visitor';\nimport { Schema, Field } from './schema';\nimport { isIterable } from './util/compat';\nimport { Chunked } from './vector/chunked';\nimport { selectFieldArgs } from './util/args';\nimport { DataType, Struct, Dictionary } from './type';\nimport { ensureSameLengthData } from './util/recordbatch';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { StructVector, VectorBuilderOptions, VectorBuilderOptionsAsync } from './vector/index';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = (Data | Vector)[];\n\nexport interface RecordBatch {\n concat(...others: Vector>[]): Table;\n slice(begin?: number, end?: number): RecordBatch;\n clone(data: Data>, children?: Vector[]): RecordBatch;\n}\n\nexport class RecordBatch\n extends StructVector\n implements Clonable>,\n Sliceable>,\n Applicative, Table> {\n\n public static from(options: VectorBuilderOptions, TNull>): Table;\n public static from(options: VectorBuilderOptionsAsync, TNull>): Promise>;\n /** @nocollapse */\n public static from(options: VectorBuilderOptions, TNull> | VectorBuilderOptionsAsync, TNull>) {\n if (isIterable<(Struct)['TValue'] | TNull>(options['values'])) {\n return Table.from(options as VectorBuilderOptions, TNull>);\n }\n return Table.from(options as VectorBuilderOptionsAsync, TNull>);\n }\n\n public static new(children: T): RecordBatch<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): RecordBatch;\n /** @nocollapse */\n public static new(...args: any[]) {\n const [fs, xs] = selectFieldArgs(args);\n const vs = xs.filter((x): x is Vector => x instanceof Vector);\n return new RecordBatch(...ensureSameLengthData(new Schema(fs), vs.map((x) => x.data)));\n }\n\n protected _schema: Schema;\n protected _dictionaries?: Map;\n\n constructor(schema: Schema, length: number, children: (Data | Vector)[]);\n constructor(schema: Schema, data: Data>, children?: Vector[]);\n constructor(...args: any[]) {\n let data: Data>;\n let schema = args[0] as Schema;\n let children: Vector[] | undefined;\n if (args[1] instanceof Data) {\n [, data, children] = (args as [any, Data>, Vector[]?]);\n } else {\n const fields = schema.fields as Field[];\n const [, length, childData] = args as [any, number, Data[]];\n data = Data.Struct(new Struct(fields), 0, length, 0, null, childData);\n }\n super(data, children);\n this._schema = schema;\n }\n\n public clone(data: Data>, children = this._children) {\n return new RecordBatch(this._schema, data, children);\n }\n\n public concat(...others: Vector>[]): Table {\n const schema = this._schema, chunks = Chunked.flatten(this, ...others);\n return new Table(schema, chunks.map(({ data }) => new RecordBatch(schema, data)));\n }\n\n public get schema() { return this._schema; }\n public get numCols() { return this._schema.fields.length; }\n public get dictionaries() {\n return this._dictionaries || (this._dictionaries = DictionaryCollector.collect(this));\n }\n\n public select(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt(...columnIndices: number[]) {\n const schema = this._schema.selectAt(...columnIndices);\n const childData = columnIndices.map((i) => this.data.childData[i]).filter(Boolean);\n return new RecordBatch<{ [key: string]: K }>(schema, this.length, childData);\n }\n}\n\n/**\n * An internal class used by the `RecordBatchReader` and `RecordBatchWriter`\n * implementations to differentiate between a stream with valid zero-length\n * RecordBatches, and a stream with a Schema message, but no RecordBatches.\n * @see https://github.com/apache/arrow/pull/4373\n * @ignore\n * @private\n */\n/* tslint:disable:class-name */\nexport class _InternalEmptyPlaceholderRecordBatch extends RecordBatch {\n constructor(schema: Schema) {\n super(schema, 0, schema.fields.map((f) => Data.new(f.type, 0, 0, 0)));\n }\n}\n\n/** @ignore */\nclass DictionaryCollector extends Visitor {\n public dictionaries = new Map();\n public static collect(batch: T) {\n return new DictionaryCollector().visit(\n batch.data, new Struct(batch.schema.fields)\n ).dictionaries;\n }\n public visit(data: Data, type: DataType) {\n if (DataType.isDictionary(type)) {\n return this.visitDictionary(data, type);\n } else {\n data.childData.forEach((child, i) =>\n this.visit(child, type.children[i].type));\n }\n return this;\n }\n public visitDictionary(data: Data, type: Dictionary) {\n const dictionary = data.dictionary;\n if (dictionary && dictionary.length > 0) {\n this.dictionaries.set(type.id, dictionary);\n }\n return this;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { MessageHeader } from '../enum';\nimport { Footer } from './metadata/file';\nimport { Schema, Field } from '../schema';\nimport streamAdapters from '../io/adapters';\nimport { Message } from './metadata/message';\nimport * as metadata from './metadata/message';\nimport { ArrayBufferViewInput } from '../util/buffer';\nimport { ByteStream, AsyncByteStream } from '../io/stream';\nimport { RandomAccessFile, AsyncRandomAccessFile } from '../io/file';\nimport { VectorLoader, JSONVectorLoader } from '../visitor/vectorloader';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from '../recordbatch';\nimport {\n FileHandle,\n ArrowJSONLike,\n ITERATOR_DONE,\n ReadableInterop,\n} from '../io/interfaces';\nimport {\n MessageReader, AsyncMessageReader, JSONMessageReader,\n checkForMagicArrowString, magicLength, magicAndPadding, magicX2AndPadding\n} from './message';\nimport {\n isPromise,\n isIterable, isAsyncIterable,\n isIteratorResult, isArrowJSON,\n isFileHandle, isFetchResponse,\n isReadableDOMStream, isReadableNodeStream\n} from '../util/compat';\n\n/** @ignore */ export type FromArg0 = ArrowJSONLike;\n/** @ignore */ export type FromArg1 = PromiseLike;\n/** @ignore */ export type FromArg2 = Iterable | ArrayBufferViewInput;\n/** @ignore */ export type FromArg3 = PromiseLike | ArrayBufferViewInput>;\n/** @ignore */ export type FromArg4 = Response | NodeJS.ReadableStream | ReadableStream | AsyncIterable;\n/** @ignore */ export type FromArg5 = FileHandle | PromiseLike | PromiseLike;\n/** @ignore */ export type FromArgs = FromArg0 | FromArg1 | FromArg2 | FromArg3 | FromArg4 | FromArg5;\n\n/** @ignore */ type OpenOptions = { autoDestroy?: boolean; };\n/** @ignore */ type RecordBatchReaders = RecordBatchFileReader | RecordBatchStreamReader;\n/** @ignore */ type AsyncRecordBatchReaders = AsyncRecordBatchFileReader | AsyncRecordBatchStreamReader;\n/** @ignore */ type RecordBatchFileReaders = RecordBatchFileReader | AsyncRecordBatchFileReader;\n/** @ignore */ type RecordBatchStreamReaders = RecordBatchStreamReader | AsyncRecordBatchStreamReader;\n\nexport class RecordBatchReader extends ReadableInterop> {\n\n protected _impl: RecordBatchReaderImpls;\n protected constructor(impl: RecordBatchReaderImpls) {\n super();\n this._impl = impl;\n }\n\n public get closed() { return this._impl.closed; }\n public get schema() { return this._impl.schema; }\n public get autoDestroy() { return this._impl.autoDestroy; }\n public get dictionaries() { return this._impl.dictionaries; }\n public get numDictionaries() { return this._impl.numDictionaries; }\n public get numRecordBatches() { return this._impl.numRecordBatches; }\n public get footer() { return this._impl.isFile() ? this._impl.footer : null; }\n\n public isSync(): this is RecordBatchReaders { return this._impl.isSync(); }\n public isAsync(): this is AsyncRecordBatchReaders { return this._impl.isAsync(); }\n public isFile(): this is RecordBatchFileReaders { return this._impl.isFile(); }\n public isStream(): this is RecordBatchStreamReaders { return this._impl.isStream(); }\n\n public next() {\n return this._impl.next();\n }\n public throw(value?: any) {\n return this._impl.throw(value);\n }\n public return(value?: any) {\n return this._impl.return(value);\n }\n public cancel() {\n return this._impl.cancel();\n }\n public reset(schema?: Schema | null): this {\n this._impl.reset(schema);\n this._DOMStream = undefined;\n this._nodeStream = undefined;\n return this;\n }\n public open(options?: OpenOptions) {\n const opening = this._impl.open(options);\n return isPromise(opening) ? opening.then(() => this) : this;\n }\n public readRecordBatch(index: number): RecordBatch | null | Promise | null> {\n return this._impl.isFile() ? this._impl.readRecordBatch(index) : null;\n }\n public [Symbol.iterator](): IterableIterator> {\n return (>> this._impl)[Symbol.iterator]();\n }\n public [Symbol.asyncIterator](): AsyncIterableIterator> {\n return (>> this._impl)[Symbol.asyncIterator]();\n }\n public toDOMStream() {\n return streamAdapters.toDOMStream>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable>));\n }\n public toNodeStream() {\n return streamAdapters.toNodeStream>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable>),\n { objectMode: true });\n }\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options?: import('stream').DuplexOptions & { autoDestroy: boolean }): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n public static throughDOM(\n // @ts-ignore\n writableStrategy?: ByteLengthQueuingStrategy,\n // @ts-ignore\n readableStrategy?: { autoDestroy: boolean }\n ): { writable: WritableStream, readable: ReadableStream> } {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n public static from(source: T): T;\n public static from(source: FromArg0): RecordBatchStreamReader;\n public static from(source: FromArg1): Promise>;\n public static from(source: FromArg2): RecordBatchFileReader | RecordBatchStreamReader;\n public static from(source: FromArg3): Promise | RecordBatchStreamReader>;\n public static from(source: FromArg4): Promise | AsyncRecordBatchReaders>;\n public static from(source: FromArg5): Promise | AsyncRecordBatchStreamReader>;\n /** @nocollapse */\n public static from(source: any) {\n if (source instanceof RecordBatchReader) {\n return source;\n } else if (isArrowJSON(source)) {\n return fromArrowJSON(source);\n } else if (isFileHandle(source)) {\n return fromFileHandle(source);\n } else if (isPromise(source)) {\n return (async () => await RecordBatchReader.from(await source))();\n } else if (isFetchResponse(source) || isReadableDOMStream(source) || isReadableNodeStream(source) || isAsyncIterable(source)) {\n return fromAsyncByteStream(new AsyncByteStream(source));\n }\n return fromByteStream(new ByteStream(source));\n }\n\n public static readAll(source: T): T extends RecordBatchReaders ? IterableIterator : AsyncIterableIterator;\n public static readAll(source: FromArg0): IterableIterator>;\n public static readAll(source: FromArg1): AsyncIterableIterator>;\n public static readAll(source: FromArg2): IterableIterator | RecordBatchStreamReader>;\n public static readAll(source: FromArg3): AsyncIterableIterator | RecordBatchStreamReader>;\n public static readAll(source: FromArg4): AsyncIterableIterator | AsyncRecordBatchReaders>;\n public static readAll(source: FromArg5): AsyncIterableIterator | AsyncRecordBatchStreamReader>;\n /** @nocollapse */\n public static readAll(source: any) {\n if (source instanceof RecordBatchReader) {\n return source.isSync() ? readAllSync(source) : readAllAsync(source as AsyncRecordBatchReaders);\n } else if (isArrowJSON(source) || ArrayBuffer.isView(source) || isIterable(source) || isIteratorResult(source)) {\n return readAllSync(source) as IterableIterator>;\n }\n return readAllAsync(source) as AsyncIterableIterator | AsyncRecordBatchReaders>;\n }\n}\n\n//\n// Since TS is a structural type system, we define the following subclass stubs\n// so that concrete types exist to associate with with the interfaces below.\n//\n// The implementation for each RecordBatchReader is hidden away in the set of\n// `RecordBatchReaderImpl` classes in the second half of this file. This allows\n// us to export a single RecordBatchReader class, and swap out the impl based\n// on the io primitives or underlying arrow (JSON, file, or stream) at runtime.\n//\n// Async/await makes our job a bit harder, since it forces everything to be\n// either fully sync or fully async. This is why the logic for the reader impls\n// has been duplicated into both sync and async variants. Since the RBR\n// delegates to its impl, an RBR with an AsyncRecordBatchFileReaderImpl for\n// example will return async/await-friendly Promises, but one with a (sync)\n// RecordBatchStreamReaderImpl will always return values. Nothing should be\n// different about their logic, aside from the async handling. This is also why\n// this code looks highly structured, as it should be nearly identical and easy\n// to follow.\n//\n\n/** @ignore */\nexport class RecordBatchStreamReader extends RecordBatchReader {\n constructor(protected _impl: RecordBatchStreamReaderImpl) { super (_impl); }\n public [Symbol.iterator]() { return (this._impl as IterableIterator>)[Symbol.iterator](); }\n public async *[Symbol.asyncIterator](): AsyncIterableIterator> { yield* this[Symbol.iterator](); }\n}\n/** @ignore */\nexport class AsyncRecordBatchStreamReader extends RecordBatchReader {\n constructor(protected _impl: AsyncRecordBatchStreamReaderImpl) { super (_impl); }\n public [Symbol.iterator](): IterableIterator> { throw new Error(`AsyncRecordBatchStreamReader is not Iterable`); }\n public [Symbol.asyncIterator]() { return (this._impl as AsyncIterableIterator>)[Symbol.asyncIterator](); }\n}\n/** @ignore */\nexport class RecordBatchFileReader extends RecordBatchStreamReader {\n constructor(protected _impl: RecordBatchFileReaderImpl) { super (_impl); }\n}\n/** @ignore */\nexport class AsyncRecordBatchFileReader extends AsyncRecordBatchStreamReader {\n constructor(protected _impl: AsyncRecordBatchFileReaderImpl) { super (_impl); }\n}\n\n//\n// Now override the return types for each sync/async RecordBatchReader variant\n//\n\n/** @ignore */\nexport interface RecordBatchStreamReader extends RecordBatchReader {\n open(options?: OpenOptions | undefined): this;\n cancel(): void;\n throw(value?: any): IteratorResult;\n return(value?: any): IteratorResult;\n next(value?: any): IteratorResult>;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchStreamReader extends RecordBatchReader {\n open(options?: OpenOptions | undefined): Promise;\n cancel(): Promise;\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(value?: any): Promise>>;\n}\n\n/** @ignore */\nexport interface RecordBatchFileReader extends RecordBatchStreamReader {\n footer: Footer;\n readRecordBatch(index: number): RecordBatch | null;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchFileReader extends AsyncRecordBatchStreamReader {\n footer: Footer;\n readRecordBatch(index: number): Promise | null>;\n}\n\n/** @ignore */\ntype RecordBatchReaderImpls =\n RecordBatchJSONReaderImpl |\n RecordBatchFileReaderImpl |\n RecordBatchStreamReaderImpl |\n AsyncRecordBatchFileReaderImpl |\n AsyncRecordBatchStreamReaderImpl;\n\n/** @ignore */\ninterface RecordBatchReaderImpl {\n\n closed: boolean;\n schema: Schema;\n autoDestroy: boolean;\n dictionaries: Map;\n\n isFile(): this is RecordBatchFileReaders;\n isStream(): this is RecordBatchStreamReaders;\n isSync(): this is RecordBatchReaders;\n isAsync(): this is AsyncRecordBatchReaders;\n\n reset(schema?: Schema | null): this;\n}\n\n/** @ignore */\ninterface RecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n\n open(options?: OpenOptions): this;\n cancel(): void;\n\n throw(value?: any): IteratorResult;\n return(value?: any): IteratorResult;\n next(value?: any): IteratorResult>;\n\n [Symbol.iterator](): IterableIterator>;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n\n open(options?: OpenOptions): Promise;\n cancel(): Promise;\n\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(value?: any): Promise>>;\n\n [Symbol.asyncIterator](): AsyncIterableIterator>;\n}\n\n/** @ignore */\ninterface RecordBatchFileReaderImpl extends RecordBatchStreamReaderImpl {\n readRecordBatch(index: number): RecordBatch | null;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchFileReaderImpl extends AsyncRecordBatchStreamReaderImpl {\n readRecordBatch(index: number): Promise | null>;\n}\n\n/** @ignore */\nabstract class RecordBatchReaderImpl implements RecordBatchReaderImpl {\n\n // @ts-ignore\n public schema: Schema;\n public closed = false;\n public autoDestroy = true;\n public dictionaries: Map;\n\n protected _dictionaryIndex = 0;\n protected _recordBatchIndex = 0;\n public get numDictionaries() { return this._dictionaryIndex; }\n public get numRecordBatches() { return this._recordBatchIndex; }\n\n constructor(dictionaries = new Map()) {\n this.dictionaries = dictionaries;\n }\n\n public isSync(): this is RecordBatchReaders { return false; }\n public isAsync(): this is AsyncRecordBatchReaders { return false; }\n public isFile(): this is RecordBatchFileReaders { return false; }\n public isStream(): this is RecordBatchStreamReaders { return false; }\n\n public reset(schema?: Schema | null) {\n this._dictionaryIndex = 0;\n this._recordBatchIndex = 0;\n this.schema = schema;\n this.dictionaries = new Map();\n return this;\n }\n\n protected _loadRecordBatch(header: metadata.RecordBatch, body: any) {\n return new RecordBatch(this.schema, header.length, this._loadVectors(header, body, this.schema.fields));\n }\n protected _loadDictionaryBatch(header: metadata.DictionaryBatch, body: any) {\n const { id, isDelta, data } = header;\n const { dictionaries, schema } = this;\n const dictionary = dictionaries.get(id);\n if (isDelta || !dictionary) {\n const type = schema.dictionaries.get(id)!;\n return (dictionary && isDelta ? dictionary.concat(\n Vector.new(this._loadVectors(data, body, [type])[0])) :\n Vector.new(this._loadVectors(data, body, [type])[0])) as Vector;\n }\n return dictionary;\n }\n protected _loadVectors(header: metadata.RecordBatch, body: any, types: (Field | DataType)[]) {\n return new VectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\n}\n\n/** @ignore */\nclass RecordBatchStreamReaderImpl extends RecordBatchReaderImpl implements IterableIterator> {\n\n protected _reader: MessageReader;\n protected _handle: ByteStream | ArrowJSONLike;\n\n constructor(source: ByteStream | ArrowJSONLike, dictionaries?: Map) {\n super(dictionaries);\n this._reader = !isArrowJSON(source)\n ? new MessageReader(this._handle = source)\n : new JSONMessageReader(this._handle = source);\n }\n\n public isSync(): this is RecordBatchReaders { return true; }\n public isStream(): this is RecordBatchStreamReaders { return true; }\n public [Symbol.iterator](): IterableIterator> {\n return this as IterableIterator>;\n }\n public cancel() {\n if (!this.closed && (this.closed = true)) {\n this.reset()._reader.return();\n this._reader = null;\n this.dictionaries = null;\n }\n }\n public open(options?: OpenOptions) {\n if (!this.closed) {\n this.autoDestroy = shouldAutoDestroy(this, options);\n if (!(this.schema || (this.schema = this._reader.readSchema()!))) {\n this.cancel();\n }\n }\n return this;\n }\n public throw(value?: any): IteratorResult {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.throw(value);\n }\n return ITERATOR_DONE;\n }\n public return(value?: any): IteratorResult {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.return(value);\n }\n return ITERATOR_DONE;\n }\n public next(): IteratorResult> {\n if (this.closed) { return ITERATOR_DONE; }\n let message: Message | null, { _reader: reader } = this;\n while (message = this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n this.reset(message.header());\n } else if (message.isRecordBatch()) {\n this._recordBatchIndex++;\n const header = message.header();\n const buffer = reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return { done: false, value: recordBatch };\n } else if (message.isDictionaryBatch()) {\n this._dictionaryIndex++;\n const header = message.header();\n const buffer = reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n if (this.schema && this._recordBatchIndex === 0) {\n this._recordBatchIndex++;\n return { done: false, value: new _InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return this.return();\n }\n protected _readNextMessageAndValidate(type?: T | null) {\n return this._reader.readMessage(type);\n }\n}\n\n/** @ignore */\nclass AsyncRecordBatchStreamReaderImpl extends RecordBatchReaderImpl implements AsyncIterableIterator> {\n\n protected _handle: AsyncByteStream;\n protected _reader: AsyncMessageReader;\n\n constructor(source: AsyncByteStream, dictionaries?: Map) {\n super(dictionaries);\n this._reader = new AsyncMessageReader(this._handle = source);\n }\n public isAsync(): this is AsyncRecordBatchReaders { return true; }\n public isStream(): this is RecordBatchStreamReaders { return true; }\n public [Symbol.asyncIterator](): AsyncIterableIterator> {\n return this as AsyncIterableIterator>;\n }\n public async cancel() {\n if (!this.closed && (this.closed = true)) {\n await this.reset()._reader.return();\n this._reader = null;\n this.dictionaries = null;\n }\n }\n public async open(options?: OpenOptions) {\n if (!this.closed) {\n this.autoDestroy = shouldAutoDestroy(this, options);\n if (!(this.schema || (this.schema = (await this._reader.readSchema())!))) {\n await this.cancel();\n }\n }\n return this;\n }\n public async throw(value?: any): Promise> {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.throw(value);\n }\n return ITERATOR_DONE;\n }\n public async return(value?: any): Promise> {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.return(value);\n }\n return ITERATOR_DONE;\n }\n public async next() {\n if (this.closed) { return ITERATOR_DONE; }\n let message: Message | null, { _reader: reader } = this;\n while (message = await this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n await this.reset(message.header());\n } else if (message.isRecordBatch()) {\n this._recordBatchIndex++;\n const header = message.header();\n const buffer = await reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return { done: false, value: recordBatch };\n } else if (message.isDictionaryBatch()) {\n this._dictionaryIndex++;\n const header = message.header();\n const buffer = await reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n if (this.schema && this._recordBatchIndex === 0) {\n this._recordBatchIndex++;\n return { done: false, value: new _InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return await this.return();\n }\n protected async _readNextMessageAndValidate(type?: T | null) {\n return await this._reader.readMessage(type);\n }\n}\n\n/** @ignore */\nclass RecordBatchFileReaderImpl extends RecordBatchStreamReaderImpl {\n\n // @ts-ignore\n protected _footer?: Footer;\n // @ts-ignore\n protected _handle: RandomAccessFile;\n public get footer() { return this._footer!; }\n public get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n public get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n\n constructor(source: RandomAccessFile | ArrayBufferViewInput, dictionaries?: Map) {\n super(source instanceof RandomAccessFile ? source : new RandomAccessFile(source), dictionaries);\n }\n public isSync(): this is RecordBatchReaders { return true; }\n public isFile(): this is RecordBatchFileReaders { return true; }\n public open(options?: OpenOptions) {\n if (!this.closed && !this._footer) {\n this.schema = (this._footer = this._readFooter()).schema;\n for (const block of this._footer.dictionaryBatches()) {\n block && this._readDictionaryBatch(this._dictionaryIndex++);\n }\n }\n return super.open(options);\n }\n public readRecordBatch(index: number) {\n if (this.closed) { return null; }\n if (!this._footer) { this.open(); }\n const block = this._footer && this._footer.getRecordBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(MessageHeader.RecordBatch);\n if (message && message.isRecordBatch()) {\n const header = message.header();\n const buffer = this._reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return recordBatch;\n }\n }\n return null;\n }\n protected _readDictionaryBatch(index: number) {\n const block = this._footer && this._footer.getDictionaryBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(MessageHeader.DictionaryBatch);\n if (message && message.isDictionaryBatch()) {\n const header = message.header();\n const buffer = this._reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n }\n protected _readFooter() {\n const { _handle } = this;\n const offset = _handle.size - magicAndPadding;\n const length = _handle.readInt32(offset);\n const buffer = _handle.readAt(offset - length, length);\n return Footer.decode(buffer);\n }\n protected _readNextMessageAndValidate(type?: T | null): Message | null {\n if (!this._footer) { this.open(); }\n if (this._footer && this._recordBatchIndex < this.numRecordBatches) {\n const block = this._footer && this._footer.getRecordBatch(this._recordBatchIndex);\n if (block && this._handle.seek(block.offset)) {\n return this._reader.readMessage(type);\n }\n }\n return null;\n }\n}\n\n/** @ignore */\nclass AsyncRecordBatchFileReaderImpl extends AsyncRecordBatchStreamReaderImpl\n implements AsyncRecordBatchFileReaderImpl {\n\n protected _footer?: Footer;\n // @ts-ignore\n protected _handle: AsyncRandomAccessFile;\n public get footer() { return this._footer!; }\n public get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n public get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n\n constructor(source: FileHandle, byteLength?: number, dictionaries?: Map);\n constructor(source: FileHandle | AsyncRandomAccessFile, dictionaries?: Map);\n constructor(source: FileHandle | AsyncRandomAccessFile, ...rest: any[]) {\n const byteLength = typeof rest[0] !== 'number' ? rest.shift() : undefined;\n const dictionaries = rest[0] instanceof Map ? > rest.shift() : undefined;\n super(source instanceof AsyncRandomAccessFile ? source : new AsyncRandomAccessFile(source, byteLength), dictionaries);\n }\n public isFile(): this is RecordBatchFileReaders { return true; }\n public isAsync(): this is AsyncRecordBatchReaders { return true; }\n public async open(options?: OpenOptions) {\n if (!this.closed && !this._footer) {\n this.schema = (this._footer = await this._readFooter()).schema;\n for (const block of this._footer.dictionaryBatches()) {\n block && await this._readDictionaryBatch(this._dictionaryIndex++);\n }\n }\n return await super.open(options);\n }\n public async readRecordBatch(index: number) {\n if (this.closed) { return null; }\n if (!this._footer) { await this.open(); }\n const block = this._footer && this._footer.getRecordBatch(index);\n if (block && (await this._handle.seek(block.offset))) {\n const message = await this._reader.readMessage(MessageHeader.RecordBatch);\n if (message && message.isRecordBatch()) {\n const header = message.header();\n const buffer = await this._reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return recordBatch;\n }\n }\n return null;\n }\n protected async _readDictionaryBatch(index: number) {\n const block = this._footer && this._footer.getDictionaryBatch(index);\n if (block && (await this._handle.seek(block.offset))) {\n const message = await this._reader.readMessage(MessageHeader.DictionaryBatch);\n if (message && message.isDictionaryBatch()) {\n const header = message.header();\n const buffer = await this._reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n }\n protected async _readFooter() {\n const { _handle } = this;\n _handle._pending && await _handle._pending;\n const offset = _handle.size - magicAndPadding;\n const length = await _handle.readInt32(offset);\n const buffer = await _handle.readAt(offset - length, length);\n return Footer.decode(buffer);\n }\n protected async _readNextMessageAndValidate(type?: T | null): Promise | null> {\n if (!this._footer) { await this.open(); }\n if (this._footer && this._recordBatchIndex < this.numRecordBatches) {\n const block = this._footer.getRecordBatch(this._recordBatchIndex);\n if (block && await this._handle.seek(block.offset)) {\n return await this._reader.readMessage(type);\n }\n }\n return null;\n }\n}\n\n/** @ignore */\nclass RecordBatchJSONReaderImpl extends RecordBatchStreamReaderImpl {\n constructor(source: ArrowJSONLike, dictionaries?: Map) {\n super(source, dictionaries);\n }\n protected _loadVectors(header: metadata.RecordBatch, body: any, types: (Field | DataType)[]) {\n return new JSONVectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\n}\n\n//\n// Define some helper functions and static implementations down here. There's\n// a bit of branching in the static methods that can lead to the same routines\n// being executed, so we've broken those out here for readability.\n//\n\n/** @ignore */\nfunction shouldAutoDestroy(self: { autoDestroy: boolean }, options?: OpenOptions) {\n return options && (typeof options['autoDestroy'] === 'boolean') ? options['autoDestroy'] : self['autoDestroy'];\n}\n\n/** @ignore */\nfunction* readAllSync(source: RecordBatchReaders | FromArg0 | FromArg2) {\n const reader = RecordBatchReader.from( source) as RecordBatchReaders;\n try {\n if (!reader.open({ autoDestroy: false }).closed) {\n do { yield reader; } while (!(reader.reset().open()).closed);\n }\n } finally { reader.cancel(); }\n}\n\n/** @ignore */\nasync function* readAllAsync(source: AsyncRecordBatchReaders | FromArg1 | FromArg3 | FromArg4 | FromArg5) {\n const reader = await RecordBatchReader.from( source) as RecordBatchReader;\n try {\n if (!(await reader.open({ autoDestroy: false })).closed) {\n do { yield reader; } while (!(await reader.reset().open()).closed);\n }\n } finally { await reader.cancel(); }\n}\n\n/** @ignore */\nfunction fromArrowJSON(source: ArrowJSONLike) {\n return new RecordBatchStreamReader(new RecordBatchJSONReaderImpl(source));\n}\n\n/** @ignore */\nfunction fromByteStream(source: ByteStream) {\n const bytes = source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(source.read()))\n : new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromAsyncByteStream(source: AsyncByteStream) {\n const bytes = await source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(await source.read()))\n : new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(async function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromFileHandle(source: FileHandle) {\n const { size } = await source.stat();\n const file = new AsyncRandomAccessFile(source, size);\n if (size >= magicX2AndPadding) {\n if (checkForMagicArrowString(await file.readAt(0, (magicLength + 7) & ~7))) {\n return new AsyncRecordBatchFileReader(new AsyncRecordBatchFileReaderImpl(file));\n }\n }\n return new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(file));\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../../type';\nimport { Vector } from '../../vector';\nimport { VectorType as V } from '../../interfaces';\nimport { Builder, BuilderOptions } from '../../builder/index';\n\n/** @ignore */\nexport interface BuilderTransformOptions extends BuilderOptions {\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n readableStrategy?: { highWaterMark?: number, size?: any, type?: 'bytes'; };\n writableStrategy?: { highWaterMark?: number, size?: any, type?: 'bytes'; };\n valueToChildTypeId?: (builder: Builder, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport function builderThroughDOMStream(options: BuilderTransformOptions) {\n return new BuilderTransform(options);\n}\n\n/** @ignore */\nexport class BuilderTransform {\n\n public readable: ReadableStream>;\n public writable: WritableStream;\n public _controller: ReadableStreamDefaultController> | null;\n\n private _numChunks = 0;\n private _finished = false;\n private _bufferedSize = 0;\n private _builder: Builder;\n private _getSize: (builder: Builder) => number;\n\n constructor(options: BuilderTransformOptions) {\n\n // Access properties by string indexers to defeat closure compiler\n\n const {\n ['readableStrategy']: readableStrategy,\n ['writableStrategy']: writableStrategy,\n ['queueingStrategy']: queueingStrategy = 'count',\n ...builderOptions\n } = options;\n\n this._controller = null;\n this._builder = Builder.new(builderOptions);\n this._getSize = queueingStrategy !== 'bytes' ? chunkLength : chunkByteLength;\n\n const { ['highWaterMark']: readableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...readableStrategy };\n const { ['highWaterMark']: writableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...writableStrategy };\n\n this['readable'] = new ReadableStream>({\n ['cancel']: () => { this._builder.clear(); },\n ['pull']: (c) => { this._maybeFlush(this._builder, this._controller = c); },\n ['start']: (c) => { this._maybeFlush(this._builder, this._controller = c); },\n }, {\n 'highWaterMark': readableHighWaterMark,\n 'size': queueingStrategy !== 'bytes' ? chunkLength : chunkByteLength,\n });\n\n this['writable'] = new WritableStream({\n ['abort']: () => { this._builder.clear(); },\n ['write']: () => { this._maybeFlush(this._builder, this._controller); },\n ['close']: () => { this._maybeFlush(this._builder.finish(), this._controller); },\n }, {\n 'highWaterMark': writableHighWaterMark,\n 'size': (value: T['TValue'] | TNull) => this._writeValueAndReturnChunkSize(value),\n });\n }\n\n private _writeValueAndReturnChunkSize(value: T['TValue'] | TNull) {\n const bufferedSize = this._bufferedSize;\n this._bufferedSize = this._getSize(this._builder.append(value));\n return this._bufferedSize - bufferedSize;\n }\n\n private _maybeFlush(builder: Builder, controller: ReadableStreamDefaultController> | null) {\n if (controller === null) { return; }\n if (this._bufferedSize >= controller.desiredSize!) {\n ++this._numChunks && this._enqueue(controller, builder.toVector());\n }\n if (builder.finished) {\n if (builder.length > 0 || this._numChunks === 0) {\n ++this._numChunks && this._enqueue(controller, builder.toVector());\n }\n if (!this._finished && (this._finished = true)) {\n this._enqueue(controller, null);\n }\n }\n }\n\n private _enqueue(controller: ReadableStreamDefaultController>, chunk: V | null) {\n this._bufferedSize = 0;\n this._controller = null;\n chunk === null ? controller.close() : controller.enqueue(chunk);\n }\n}\n\n/** @ignore */ const chunkLength = (chunk: Vector | Builder) => chunk.length;\n/** @ignore */ const chunkByteLength = (chunk: Vector | Builder) => chunk.byteLength;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { RecordBatch } from '../recordbatch';\nimport { DictionaryVector } from '../vector/dictionary';\n\n/** @ignore */\nexport type ValueFunc = (idx: number, cols: RecordBatch) => T | null;\n/** @ignore */\nexport type PredicateFunc = (idx: number, cols: RecordBatch) => boolean;\n\n/** @ignore */\nexport abstract class Value {\n eq(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new Equals(this, other);\n }\n le(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new LTeq(this, other);\n }\n ge(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new GTeq(this, other);\n }\n lt(other: Value | T): Predicate {\n return new Not(this.ge(other));\n }\n gt(other: Value | T): Predicate {\n return new Not(this.le(other));\n }\n ne(other: Value | T): Predicate {\n return new Not(this.eq(other));\n }\n}\n\n/** @ignore */\nexport class Literal extends Value {\n constructor(public v: T) { super(); }\n}\n\n/** @ignore */\nexport class Col extends Value {\n // @ts-ignore\n public vector: Vector;\n // @ts-ignore\n public colidx: number;\n\n constructor(public name: string) { super(); }\n bind(batch: RecordBatch): (idx: number, batch?: RecordBatch) => any {\n if (!this.colidx) {\n // Assume column index doesn't change between calls to bind\n //this.colidx = cols.findIndex(v => v.name.indexOf(this.name) != -1);\n this.colidx = -1;\n const fields = batch.schema.fields;\n for (let idx = -1; ++idx < fields.length;) {\n if (fields[idx].name === this.name) {\n this.colidx = idx;\n break;\n }\n }\n if (this.colidx < 0) { throw new Error(`Failed to bind Col \"${this.name}\"`); }\n }\n\n const vec = this.vector = batch.getChildAt(this.colidx)!;\n return (idx: number) => vec.get(idx);\n }\n}\n\n/** @ignore */\nexport abstract class Predicate {\n abstract bind(batch: RecordBatch): PredicateFunc;\n and(...expr: Predicate[]): And { return new And(this, ...expr); }\n or(...expr: Predicate[]): Or { return new Or(this, ...expr); }\n not(): Predicate { return new Not(this); }\n}\n\n/** @ignore */\nexport abstract class ComparisonPredicate extends Predicate {\n constructor(public readonly left: Value, public readonly right: Value) {\n super();\n }\n\n bind(batch: RecordBatch) {\n if (this.left instanceof Literal) {\n if (this.right instanceof Literal) {\n return this._bindLitLit(batch, this.left, this.right);\n } else { // right is a Col\n\n return this._bindLitCol(batch, this.left, this.right as Col);\n }\n } else { // left is a Col\n if (this.right instanceof Literal) {\n return this._bindColLit(batch, this.left as Col, this.right);\n } else { // right is a Col\n return this._bindColCol(batch, this.left as Col, this.right as Col);\n }\n }\n }\n\n protected abstract _bindLitLit(batch: RecordBatch, left: Literal, right: Literal): PredicateFunc;\n protected abstract _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc;\n protected abstract _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc;\n protected abstract _bindLitCol(batch: RecordBatch, lit: Literal, col: Col): PredicateFunc;\n}\n\n/** @ignore */\nexport abstract class CombinationPredicate extends Predicate {\n readonly children: Predicate[];\n constructor(...children: Predicate[]) {\n super();\n this.children = children;\n }\n}\n// add children to prototype so it doesn't get mangled in es2015/umd\n( CombinationPredicate.prototype).children = Object.freeze([]); // freeze for safety\n\n/** @ignore */\nexport class And extends CombinationPredicate {\n constructor(...children: Predicate[]) {\n // Flatten any Ands\n children = children.reduce((accum: Predicate[], p: Predicate): Predicate[] => {\n return accum.concat(p instanceof And ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch: RecordBatch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx: number, batch: RecordBatch) => bound.every((p) => p(idx, batch));\n }\n}\n\n/** @ignore */\nexport class Or extends CombinationPredicate {\n constructor(...children: Predicate[]) {\n // Flatten any Ors\n children = children.reduce((accum: Predicate[], p: Predicate): Predicate[] => {\n return accum.concat(p instanceof Or ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch: RecordBatch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx: number, batch: RecordBatch) => bound.some((p) => p(idx, batch));\n }\n}\n\n/** @ignore */\nexport class Equals extends ComparisonPredicate {\n // Helpers used to cache dictionary reverse lookups between calls to bind\n private lastDictionary: Vector|undefined;\n private lastKey: number|undefined;\n\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v == right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, batch: RecordBatch) => left_func(idx, batch) == right_func(idx, batch);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n if (col.vector instanceof DictionaryVector) {\n let key: any;\n const vector = col.vector as DictionaryVector;\n if (vector.dictionary !== this.lastDictionary) {\n key = vector.reverseLookup(lit.v);\n this.lastDictionary = vector.dictionary;\n this.lastKey = key;\n } else {\n key = this.lastKey;\n }\n\n if (key === -1) {\n // the value doesn't exist in the dictionary - always return\n // false\n // TODO: special-case of PredicateFunc that encapsulates this\n // \"always false\" behavior. That way filtering operations don't\n // have to bother checking\n return () => false;\n } else {\n return (idx: number) => {\n return vector.getKey(idx) === key;\n };\n }\n } else {\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) == lit.v;\n }\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n // Equals is commutative\n return this._bindColLit(batch, col, lit);\n }\n}\n\n/** @ignore */\nexport class LTeq extends ComparisonPredicate {\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v <= right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, cols: RecordBatch) => left_func(idx, cols) <= right_func(idx, cols);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) <= lit.v;\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => lit.v <= col_func(idx, cols);\n }\n}\n\n/** @ignore */\nexport class GTeq extends ComparisonPredicate {\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v >= right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, cols: RecordBatch) => left_func(idx, cols) >= right_func(idx, cols);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) >= lit.v;\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => lit.v >= col_func(idx, cols);\n }\n}\n\n/** @ignore */\nexport class Not extends Predicate {\n constructor(public readonly child: Predicate) {\n super();\n }\n\n bind(batch: RecordBatch) {\n const func = this.child.bind(batch);\n return (idx: number, batch: RecordBatch) => !func(idx, batch);\n }\n}\n\n/** @ignore */\nexport class CustomPredicate extends Predicate {\n constructor(private next: PredicateFunc, private bind_: (batch: RecordBatch) => void) {\n super();\n }\n\n bind(batch: RecordBatch) {\n this.bind_(batch);\n return this.next;\n }\n}\n\nexport function lit(v: any): Value { return new Literal(v); }\nexport function col(n: string): Col { return new Col(n); }\nexport function and(...p: Predicate[]): And { return new And(...p); }\nexport function or(...p: Predicate[]): Or { return new Or(...p); }\nexport function custom(next: PredicateFunc, bind: (batch: RecordBatch) => void) {\n return new CustomPredicate(next, bind);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Table } from '../table';\nimport { Vector } from '../vector';\nimport { IntVector } from '../vector/int';\nimport { Field, Schema } from '../schema';\nimport { Predicate, Col } from './predicate';\nimport { RecordBatch } from '../recordbatch';\nimport { VectorType as V } from '../interfaces';\nimport { DataType, Int, Struct, Dictionary } from '../type';\n\n/** @ignore */\nexport type BindFunc = (batch: RecordBatch) => void;\n/** @ignore */\nexport type NextFunc = (idx: number, batch: RecordBatch) => void;\n\nTable.prototype.countBy = function(this: Table, name: Col | string) { return new DataFrame(this.chunks).countBy(name); };\nTable.prototype.scan = function(this: Table, next: NextFunc, bind?: BindFunc) { return new DataFrame(this.chunks).scan(next, bind); };\nTable.prototype.scanReverse = function(this: Table, next: NextFunc, bind?: BindFunc) { return new DataFrame(this.chunks).scanReverse(next, bind); };\nTable.prototype.filter = function(this: Table, predicate: Predicate): FilteredDataFrame { return new DataFrame(this.chunks).filter(predicate); };\n\nexport class DataFrame extends Table {\n public filter(predicate: Predicate): FilteredDataFrame {\n return new FilteredDataFrame(this.chunks, predicate);\n }\n public scan(next: NextFunc, bind?: BindFunc) {\n const batches = this.chunks, numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n if (bind) { bind(batch); }\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n next(index, batch);\n }\n }\n }\n public scanReverse(next: NextFunc, bind?: BindFunc) {\n const batches = this.chunks, numBatches = batches.length;\n for (let batchIndex = numBatches; --batchIndex >= 0;) {\n // load batches\n const batch = batches[batchIndex];\n if (bind) { bind(batch); }\n // yield all indices\n for (let index = batch.length; --index >= 0;) {\n next(index, batch);\n }\n }\n }\n public countBy(name: Col | string) {\n const batches = this.chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new Col(name) : name as Col;\n // Assume that all dictionary batches are deltas, which means that the\n // last record batch has the most complete dictionary\n count_by.bind(batches[numBatches - 1]);\n const vector = count_by.vector as V;\n if (!DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\n\n const countByteLength = Math.ceil(Math.log(vector.length) / Math.log(256));\n const CountsArrayType = countByteLength == 4 ? Uint32Array :\n countByteLength >= 2 ? Uint16Array : Uint8Array;\n\n const counts = new CountsArrayType(vector.dictionary.length);\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n // rebind the countBy Col\n count_by.bind(batch);\n const keys = (count_by.vector as V).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n let key = keys.get(index);\n if (key !== null) { counts[key]++; }\n }\n }\n return new CountByResult(vector.dictionary, IntVector.from(counts));\n }\n}\n\n/** @ignore */\nexport class CountByResult extends Table<{ values: T, counts: TCount }> {\n constructor(values: Vector, counts: V) {\n type R = { values: T, counts: TCount };\n const schema = new Schema([\n new Field('values', values.type),\n new Field('counts', counts.type)\n ]);\n super(new RecordBatch(schema, counts.length, [values, counts]));\n }\n public toJSON(): Object {\n const values = this.getColumnAt(0)!;\n const counts = this.getColumnAt(1)!;\n const result = {} as { [k: string]: number | null };\n for (let i = -1; ++i < this.length;) {\n result[values.get(i)] = counts.get(i);\n }\n return result;\n }\n}\n\n/** @ignore */\nexport class FilteredDataFrame extends DataFrame {\n private _predicate: Predicate;\n constructor (batches: RecordBatch[], predicate: Predicate) {\n super(batches);\n this._predicate = predicate;\n }\n public scan(next: NextFunc, bind?: BindFunc) {\n // inlined version of this:\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) next(idx, columns);\n // });\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n let isBound = false;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) {\n // bind batches lazily - if predicate doesn't match anything\n // in the batch we don't need to call bind on the batch\n if (bind && !isBound) {\n bind(batch);\n isBound = true;\n }\n next(index, batch);\n }\n }\n }\n }\n public scanReverse(next: NextFunc, bind?: BindFunc) {\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = numBatches; --batchIndex >= 0;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n let isBound = false;\n // yield all indices\n for (let index = batch.length; --index >= 0;) {\n if (predicate(index, batch)) {\n // bind batches lazily - if predicate doesn't match anything\n // in the batch we don't need to call bind on the batch\n if (bind && !isBound) {\n bind(batch);\n isBound = true;\n }\n next(index, batch);\n }\n }\n }\n }\n public count(): number {\n // inlined version of this:\n // let sum = 0;\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) ++sum;\n // });\n // return sum;\n let sum = 0;\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) { ++sum; }\n }\n }\n return sum;\n }\n public *[Symbol.iterator](): IterableIterator['TValue']> {\n // inlined version of this:\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) next(idx, columns);\n // });\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n // TODO: bind batches lazily\n // If predicate doesn't match anything in the batch we don't need\n // to bind the callback\n const predicate = this._predicate.bind(batch);\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) { yield batch.get(index) as any; }\n }\n }\n }\n public filter(predicate: Predicate): FilteredDataFrame {\n return new FilteredDataFrame(\n this._chunks,\n this._predicate.and(predicate)\n );\n }\n public countBy(name: Col | string) {\n const batches = this._chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new Col(name) : name as Col;\n // Assume that all dictionary batches are deltas, which means that the\n // last record batch has the most complete dictionary\n count_by.bind(batches[numBatches - 1]);\n const vector = count_by.vector as V;\n if (!DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\n\n const countByteLength = Math.ceil(Math.log(vector.length) / Math.log(256));\n const CountsArrayType = countByteLength == 4 ? Uint32Array :\n countByteLength >= 2 ? Uint16Array : Uint8Array;\n\n const counts = new CountsArrayType(vector.dictionary.length);\n\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n // rebind the countBy Col\n count_by.bind(batch);\n const keys = (count_by.vector as V).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n let key = keys.get(index);\n if (key !== null && predicate(index, batch)) { counts[key]++; }\n }\n }\n return new CountByResult(vector.dictionary, IntVector.from(counts));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nexport { ArrowType, DateUnit, IntervalUnit, MessageHeader, MetadataVersion, Precision, TimeUnit, Type, UnionMode, BufferType } from './enum';\nexport { Data } from './data';\nexport {\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8,\n Binary,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n Struct,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth,\n FixedSizeList,\n Map_,\n} from './type';\n\nexport { Table } from './table';\nexport { Column } from './column';\nexport { Visitor } from './visitor';\nexport { Schema, Field } from './schema';\nexport {\n Vector,\n BaseVector,\n BinaryVector,\n BoolVector,\n Chunked,\n DateVector, DateDayVector, DateMillisecondVector,\n DecimalVector,\n DictionaryVector,\n FixedSizeBinaryVector,\n FixedSizeListVector,\n FloatVector, Float16Vector, Float32Vector, Float64Vector,\n IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector,\n IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector,\n ListVector,\n MapVector,\n NullVector,\n StructVector,\n TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector,\n TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector,\n UnionVector, DenseUnionVector, SparseUnionVector,\n Utf8Vector,\n} from './vector/index';\n\nexport {\n Builder,\n BinaryBuilder,\n BoolBuilder,\n DateBuilder, DateDayBuilder, DateMillisecondBuilder,\n DecimalBuilder,\n DictionaryBuilder,\n FixedSizeBinaryBuilder,\n FixedSizeListBuilder,\n FloatBuilder, Float16Builder, Float32Builder, Float64Builder,\n IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder,\n IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder,\n ListBuilder,\n MapBuilder,\n NullBuilder,\n StructBuilder,\n TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder,\n TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder,\n UnionBuilder, DenseUnionBuilder, SparseUnionBuilder,\n Utf8Builder,\n} from './builder/index';\n\nexport { ByteStream, AsyncByteStream, AsyncByteQueue, ReadableSource, WritableSink } from './io/stream';\nexport { RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader } from './ipc/reader';\nexport { RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter } from './ipc/writer';\nexport { MessageReader, AsyncMessageReader, JSONMessageReader } from './ipc/message';\nexport { Message } from './ipc/metadata/message';\nexport { RecordBatch } from './recordbatch';\nexport { ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions } from './io/interfaces';\nexport { DataFrame, FilteredDataFrame, CountByResult, BindFunc, NextFunc } from './compute/dataframe';\n\nimport * as util_bn_ from './util/bn';\nimport * as util_int_ from './util/int';\nimport * as util_bit_ from './util/bit';\nimport * as util_math_ from './util/math';\nimport * as util_buffer_ from './util/buffer';\nimport * as util_vector_ from './util/vector';\nimport * as predicate from './compute/predicate';\n\nexport { predicate };\n/** @ignore */\nexport const util = {\n ...util_bn_,\n ...util_int_,\n ...util_bit_,\n ...util_math_,\n ...util_buffer_,\n ...util_vector_\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './io/adapters';\nimport { Builder } from './builder/index';\nimport { RecordBatchReader } from './ipc/reader';\nimport { RecordBatchWriter } from './ipc/writer';\nimport { toDOMStream } from './io/whatwg/iterable';\nimport { builderThroughDOMStream } from './io/whatwg/builder';\nimport { recordBatchReaderThroughDOMStream } from './io/whatwg/reader';\nimport { recordBatchWriterThroughDOMStream } from './io/whatwg/writer';\n\nstreamAdapters.toDOMStream = toDOMStream;\nBuilder['throughDOM'] = builderThroughDOMStream;\nRecordBatchReader['throughDOM'] = recordBatchReaderThroughDOMStream;\nRecordBatchWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\n\nexport {\n ArrowType, DateUnit, IntervalUnit, MessageHeader, MetadataVersion, Precision, TimeUnit, Type, UnionMode, BufferType,\n Data,\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8,\n Binary,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n Struct,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth,\n FixedSizeList,\n Map_,\n Table,\n Column,\n Schema, Field,\n Visitor,\n Vector,\n BaseVector,\n BinaryVector,\n BoolVector,\n Chunked,\n DateVector, DateDayVector, DateMillisecondVector,\n DecimalVector,\n DictionaryVector,\n FixedSizeBinaryVector,\n FixedSizeListVector,\n FloatVector, Float16Vector, Float32Vector, Float64Vector,\n IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector,\n IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector,\n ListVector,\n MapVector,\n NullVector,\n StructVector,\n TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector,\n TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector,\n UnionVector, DenseUnionVector, SparseUnionVector,\n Utf8Vector,\n ByteStream, AsyncByteStream, AsyncByteQueue, ReadableSource, WritableSink,\n RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader,\n RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter,\n MessageReader, AsyncMessageReader, JSONMessageReader,\n Message,\n RecordBatch,\n ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions,\n DataFrame, FilteredDataFrame, CountByResult, BindFunc, NextFunc,\n predicate,\n util,\n Builder,\n BinaryBuilder,\n BoolBuilder,\n DateBuilder, DateDayBuilder, DateMillisecondBuilder,\n DecimalBuilder,\n DictionaryBuilder,\n FixedSizeBinaryBuilder,\n FixedSizeListBuilder,\n FloatBuilder, Float16Builder, Float32Builder, Float64Builder,\n IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder,\n IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder,\n ListBuilder,\n MapBuilder,\n NullBuilder,\n StructBuilder,\n TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder,\n TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder,\n UnionBuilder, DenseUnionBuilder, SparseUnionBuilder,\n Utf8Builder,\n} from './Arrow';\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { toUint8Array } from '../../util/buffer';\nimport { ReadableDOMStreamOptions } from '../../io/interfaces';\nimport { isIterable, isAsyncIterable } from '../../util/compat';\n\n/** @ignore */\nexport function toDOMStream(source: Iterable | AsyncIterable, options?: ReadableDOMStreamOptions): ReadableStream {\n if (isAsyncIterable(source)) { return asyncIterableAsReadableDOMStream(source, options); }\n if (isIterable(source)) { return iterableAsReadableDOMStream(source, options); }\n /* istanbul ignore next */\n throw new Error(`toDOMStream() must be called with an Iterable or AsyncIterable`);\n}\n\n/** @ignore */\nfunction iterableAsReadableDOMStream(source: Iterable, options?: ReadableDOMStreamOptions) {\n\n let it: Iterator | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream({\n ...options as any,\n start(controller) { next(controller, it || (it = source[Symbol.iterator]())); },\n pull(controller) { it ? (next(controller, it)) : controller.close(); },\n cancel() { (it && (it.return && it.return()) || true) && (it = null); }\n }, { highWaterMark: bm ? hwm : undefined, ...options });\n\n function next(controller: ReadableStreamDefaultController, it: Iterator) {\n let buf: Uint8Array;\n let r: IteratorResult | null = null;\n let size = controller.desiredSize || null;\n while (!(r = it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = toUint8Array(r.value))) {\n size != null && bm && (size = size - buf.byteLength + 1);\n r.value = buf;\n }\n controller.enqueue(r.value);\n if (size != null && --size <= 0) { return; }\n }\n controller.close();\n }\n}\n\n/** @ignore */\nfunction asyncIterableAsReadableDOMStream(source: AsyncIterable, options?: ReadableDOMStreamOptions) {\n\n let it: AsyncIterator | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream({\n ...options as any,\n async start(controller) { await next(controller, it || (it = source[Symbol.asyncIterator]())); },\n async pull(controller) { it ? (await next(controller, it)) : controller.close(); },\n async cancel() { (it && (it.return && await it.return()) || true) && (it = null); },\n }, { highWaterMark: bm ? hwm : undefined, ...options });\n\n async function next(controller: ReadableStreamDefaultController, it: AsyncIterator) {\n let buf: Uint8Array;\n let r: IteratorResult | null = null;\n let size = controller.desiredSize || null;\n while (!(r = await it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = toUint8Array(r.value))) {\n size != null && bm && (size = size - buf.byteLength + 1);\n r.value = buf;\n }\n controller.enqueue(r.value);\n if (size != null && --size <= 0) { return; }\n }\n controller.close();\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../../type';\nimport { RecordBatch } from '../../recordbatch';\nimport { AsyncByteQueue } from '../../io/stream';\nimport { RecordBatchReader } from '../../ipc/reader';\n\n/** @ignore */\nexport function recordBatchReaderThroughDOMStream(writableStrategy?: ByteLengthQueuingStrategy, readableStrategy?: { autoDestroy: boolean }) {\n\n const queue = new AsyncByteQueue();\n let reader: RecordBatchReader | null = null;\n\n const readable = new ReadableStream>({\n async cancel() { await queue.close(); },\n async start(controller) { await next(controller, reader || (reader = await open())); },\n async pull(controller) { reader ? await next(controller, reader) : controller.close(); }\n });\n\n return { writable: new WritableStream(queue, { 'highWaterMark': 2 ** 14, ...writableStrategy }), readable };\n\n async function open() {\n return await (await RecordBatchReader.from(queue)).open(readableStrategy);\n }\n\n async function next(controller: ReadableStreamDefaultController>, reader: RecordBatchReader) {\n let size = controller.desiredSize;\n let r: IteratorResult> | null = null;\n while (!(r = await reader.next()).done) {\n controller.enqueue(r.value);\n if (size != null && --size <= 0) {\n return;\n }\n }\n controller.close();\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../../type';\nimport { RecordBatch } from '../../recordbatch';\nimport { AsyncByteStream } from '../../io/stream';\nimport { RecordBatchWriter } from '../../ipc/writer';\n\n/** @ignore */\nexport function recordBatchWriterThroughDOMStream(\n this: typeof RecordBatchWriter,\n writableStrategy?: QueuingStrategy> & { autoDestroy: boolean },\n readableStrategy?: { highWaterMark?: number, size?: any }\n) {\n\n const writer = new this(writableStrategy);\n const reader = new AsyncByteStream(writer);\n const readable = new ReadableStream({\n type: 'bytes',\n async cancel() { await reader.cancel(); },\n async pull(controller) { await next(controller); },\n async start(controller) { await next(controller); },\n }, { 'highWaterMark': 2 ** 14, ...readableStrategy });\n\n return { writable: new WritableStream(writer, writableStrategy), readable };\n\n async function next(controller: ReadableStreamDefaultController) {\n let buf: Uint8Array | null = null;\n let size = controller.desiredSize;\n while (buf = await reader.read(size || null)) {\n controller.enqueue(buf);\n if (size != null && (size -= buf.byteLength) <= 0) { return; }\n }\n controller.close();\n }\n}\n","/**\n * @license\n * Copyright 2018-2021 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Table, Type } from \"apache-arrow\";\nvar ArrowTable = /** @class */ (function () {\n function ArrowTable(dataBuffer, indexBuffer, columnsBuffer, styler) {\n var _this = this;\n this.getCell = function (rowIndex, columnIndex) {\n var isBlankCell = rowIndex < _this.headerRows && columnIndex < _this.headerColumns;\n var isIndexCell = rowIndex >= _this.headerRows && columnIndex < _this.headerColumns;\n var isColumnsCell = rowIndex < _this.headerRows && columnIndex >= _this.headerColumns;\n if (isBlankCell) {\n var classNames = [\"blank\"];\n if (columnIndex > 0) {\n classNames.push(\"level\" + rowIndex);\n }\n return {\n type: \"blank\",\n classNames: classNames.join(\" \"),\n content: \"\"\n };\n }\n else if (isColumnsCell) {\n var dataColumnIndex = columnIndex - _this.headerColumns;\n var classNames = [\n \"col_heading\",\n \"level\" + rowIndex,\n \"col\" + dataColumnIndex\n ];\n return {\n type: \"columns\",\n classNames: classNames.join(\" \"),\n content: _this.getContent(_this.columnsTable, dataColumnIndex, rowIndex)\n };\n }\n else if (isIndexCell) {\n var dataRowIndex = rowIndex - _this.headerRows;\n var classNames = [\n \"row_heading\",\n \"level\" + columnIndex,\n \"row\" + dataRowIndex\n ];\n return {\n type: \"index\",\n id: \"T_\" + _this.uuid + \"level\" + columnIndex + \"_row\" + dataRowIndex,\n classNames: classNames.join(\" \"),\n content: _this.getContent(_this.indexTable, dataRowIndex, columnIndex)\n };\n }\n else {\n var dataRowIndex = rowIndex - _this.headerRows;\n var dataColumnIndex = columnIndex - _this.headerColumns;\n var classNames = [\n \"data\",\n \"row\" + dataRowIndex,\n \"col\" + dataColumnIndex\n ];\n var content = _this.styler\n ? _this.getContent(_this.styler.displayValuesTable, dataRowIndex, dataColumnIndex)\n : _this.getContent(_this.dataTable, dataRowIndex, dataColumnIndex);\n return {\n type: \"data\",\n id: \"T_\" + _this.uuid + \"row\" + dataRowIndex + \"_col\" + dataColumnIndex,\n classNames: classNames.join(\" \"),\n content: content\n };\n }\n };\n this.getContent = function (table, rowIndex, columnIndex) {\n var column = table.getColumnAt(columnIndex);\n if (column === null) {\n return \"\";\n }\n var columnTypeId = _this.getColumnTypeId(table, columnIndex);\n switch (columnTypeId) {\n case Type.Timestamp: {\n return _this.nanosToDate(column.get(rowIndex));\n }\n default: {\n return column.get(rowIndex);\n }\n }\n };\n this.dataTable = Table.from(dataBuffer);\n this.indexTable = Table.from(indexBuffer);\n this.columnsTable = Table.from(columnsBuffer);\n this.styler = styler\n ? {\n caption: styler.caption,\n displayValuesTable: Table.from(styler.displayValues),\n styles: styler.styles,\n uuid: styler.uuid\n }\n : undefined;\n }\n Object.defineProperty(ArrowTable.prototype, \"rows\", {\n get: function () {\n return this.indexTable.length + this.columnsTable.numCols;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"columns\", {\n get: function () {\n return this.indexTable.numCols + this.columnsTable.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"headerRows\", {\n get: function () {\n return this.rows - this.dataRows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"headerColumns\", {\n get: function () {\n return this.columns - this.dataColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"dataRows\", {\n get: function () {\n return this.dataTable.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"dataColumns\", {\n get: function () {\n return this.dataTable.numCols;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"uuid\", {\n get: function () {\n return this.styler && this.styler.uuid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"caption\", {\n get: function () {\n return this.styler && this.styler.caption;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"styles\", {\n get: function () {\n return this.styler && this.styler.styles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"table\", {\n get: function () {\n return this.dataTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"index\", {\n get: function () {\n return this.indexTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"columnTable\", {\n get: function () {\n return this.columnsTable;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Serialize arrow table.\n */\n ArrowTable.prototype.serialize = function () {\n return {\n data: this.dataTable.serialize(),\n index: this.indexTable.serialize(),\n columns: this.columnsTable.serialize()\n };\n };\n /**\n * Returns apache-arrow specific typeId of column.\n */\n ArrowTable.prototype.getColumnTypeId = function (table, columnIndex) {\n return table.schema.fields[columnIndex].type.typeId;\n };\n ArrowTable.prototype.nanosToDate = function (nanos) {\n return new Date(nanos / 1e6);\n };\n return ArrowTable;\n}());\nexport { ArrowTable };\n","/**\n * @license\n * Copyright 2018-2021 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Safari doesn't support the EventTarget class, so we use a shim.\nimport { EventTarget } from \"event-target-shim\";\nimport { ArrowTable } from \"./ArrowTable\";\n/** Messages from Component -> Streamlit */\nvar ComponentMessageType;\n(function (ComponentMessageType) {\n // A component sends this message when it's ready to receive messages\n // from Streamlit. Streamlit won't send any messages until it gets this.\n // Data: { apiVersion: number }\n ComponentMessageType[\"COMPONENT_READY\"] = \"streamlit:componentReady\";\n // The component has a new widget value. Send it back to Streamlit, which\n // will then re-run the app.\n // Data: { value: any }\n ComponentMessageType[\"SET_COMPONENT_VALUE\"] = \"streamlit:setComponentValue\";\n // The component has a new height for its iframe.\n // Data: { height: number }\n ComponentMessageType[\"SET_FRAME_HEIGHT\"] = \"streamlit:setFrameHeight\";\n})(ComponentMessageType || (ComponentMessageType = {}));\n/**\n * Streamlit communication API.\n *\n * Components can send data to Streamlit via the functions defined here,\n * and receive data from Streamlit via the `events` property.\n */\nvar Streamlit = /** @class */ (function () {\n function Streamlit() {\n }\n /**\n * The Streamlit component API version we're targetting.\n * There's currently only 1!\n */\n Streamlit.API_VERSION = 1;\n Streamlit.RENDER_EVENT = \"streamlit:render\";\n /** Dispatches events received from Streamlit. */\n Streamlit.events = new EventTarget();\n Streamlit.registeredMessageListener = false;\n /**\n * Tell Streamlit that the component is ready to start receiving data.\n * Streamlit will defer emitting RENDER events until it receives the\n * COMPONENT_READY message.\n */\n Streamlit.setComponentReady = function () {\n if (!Streamlit.registeredMessageListener) {\n // Register for message events if we haven't already\n window.addEventListener(\"message\", Streamlit.onMessageEvent);\n Streamlit.registeredMessageListener = true;\n }\n Streamlit.sendBackMsg(ComponentMessageType.COMPONENT_READY, {\n apiVersion: Streamlit.API_VERSION\n });\n };\n /**\n * Report the component's height to Streamlit.\n * This should be called every time the component changes its DOM - that is,\n * when it's first loaded, and any time it updates.\n */\n Streamlit.setFrameHeight = function (height) {\n if (height === undefined) {\n // `height` is optional. If undefined, it defaults to scrollHeight,\n // which is the entire height of the element minus its border,\n // scrollbar, and margin.\n height = document.body.scrollHeight;\n }\n if (height === Streamlit.lastFrameHeight) {\n // Don't bother updating if our height hasn't changed.\n return;\n }\n Streamlit.lastFrameHeight = height;\n Streamlit.sendBackMsg(ComponentMessageType.SET_FRAME_HEIGHT, { height: height });\n };\n /**\n * Set the component's value. This value will be returned to the Python\n * script, and the script will be re-run.\n *\n * For example:\n *\n * JavaScript:\n * Streamlit.setComponentValue(\"ahoy!\")\n *\n * Python:\n * value = st.my_component(...)\n * st.write(value) # -> \"ahoy!\"\n *\n * The value must be an ArrowTable, a typed array, an ArrayBuffer, or be\n * serializable to JSON.\n */\n Streamlit.setComponentValue = function (value) {\n var dataType;\n if (value instanceof ArrowTable) {\n dataType = \"dataframe\";\n value = value.serialize();\n }\n else if (isTypedArray(value)) {\n // All typed arrays get sent as Uint8Array, because that's what our\n // protobuf library uses for the \"bytes\" field type.\n dataType = \"bytes\";\n value = new Uint8Array(value.buffer);\n }\n else if (value instanceof ArrayBuffer) {\n dataType = \"bytes\";\n value = new Uint8Array(value);\n }\n else {\n dataType = \"json\";\n }\n Streamlit.sendBackMsg(ComponentMessageType.SET_COMPONENT_VALUE, {\n value: value,\n dataType: dataType\n });\n };\n /** Receive a ForwardMsg from the Streamlit app */\n Streamlit.onMessageEvent = function (event) {\n var type = event.data[\"type\"];\n switch (type) {\n case Streamlit.RENDER_EVENT:\n Streamlit.onRenderMessage(event.data);\n break;\n }\n };\n /**\n * Handle an untyped Streamlit render event and redispatch it as a\n * StreamlitRenderEvent.\n */\n Streamlit.onRenderMessage = function (data) {\n var args = data[\"args\"];\n if (args == null) {\n console.error(\"Got null args in onRenderMessage. This should never happen\");\n args = {};\n }\n // Parse our dataframe arguments with arrow, and merge them into our args dict\n var dataframeArgs = data[\"dfs\"] && data[\"dfs\"].length > 0\n ? Streamlit.argsDataframeToObject(data[\"dfs\"])\n : {};\n args = __assign(__assign({}, args), dataframeArgs);\n var disabled = Boolean(data[\"disabled\"]);\n var theme = data[\"theme\"];\n if (theme) {\n _injectTheme(theme);\n }\n // Dispatch a render event!\n var eventData = { disabled: disabled, args: args, theme: theme };\n var event = new CustomEvent(Streamlit.RENDER_EVENT, {\n detail: eventData\n });\n Streamlit.events.dispatchEvent(event);\n };\n Streamlit.argsDataframeToObject = function (argsDataframe) {\n var argsDataframeArrow = argsDataframe.map(function (_a) {\n var key = _a.key, value = _a.value;\n return [key, Streamlit.toArrowTable(value)];\n });\n return Object.fromEntries(argsDataframeArrow);\n };\n Streamlit.toArrowTable = function (df) {\n var _a = df.data, data = _a.data, index = _a.index, columns = _a.columns, styler = _a.styler;\n return new ArrowTable(data, index, columns, styler);\n };\n /** Post a message to the Streamlit app. */\n Streamlit.sendBackMsg = function (type, data) {\n window.parent.postMessage(__assign({ isStreamlitMessage: true, type: type }, data), \"*\");\n };\n return Streamlit;\n}());\nexport { Streamlit };\nvar _injectTheme = function (theme) {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n style.innerHTML = \"\\n :root {\\n --primary-color: \" + theme.primaryColor + \";\\n --background-color: \" + theme.backgroundColor + \";\\n --secondary-background-color: \" + theme.secondaryBackgroundColor + \";\\n --text-color: \" + theme.textColor + \";\\n --font: \" + theme.font + \";\\n }\\n\\n body {\\n background-color: var(--background-color);\\n color: var(--text-color);\\n }\\n \";\n};\n/** True if the value is a TypedArray. */\nfunction isTypedArray(value) {\n var isBigIntArray = false;\n try {\n isBigIntArray =\n value instanceof BigInt64Array || value instanceof BigUint64Array;\n }\n catch (e) {\n // Ignore cause Safari does not support this\n // https://caniuse.com/mdn-javascript_builtins_bigint64array\n }\n return (value instanceof Int8Array ||\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int16Array ||\n value instanceof Uint16Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Float32Array ||\n value instanceof Float64Array ||\n isBigIntArray);\n}\n","/**\n * @license\n * Copyright 2018-2021 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\nimport React from \"react\";\nimport { Streamlit } from \"./streamlit\";\n/**\n * Optional Streamlit React-based component base class.\n *\n * You are not required to extend this base class to create a Streamlit\n * component. If you decide not to extend it, you should implement the\n * `componentDidMount` and `componentDidUpdate` functions in your own class,\n * so that your plugin properly resizes.\n */\nvar StreamlitComponentBase = /** @class */ (function (_super) {\n __extends(StreamlitComponentBase, _super);\n function StreamlitComponentBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StreamlitComponentBase.prototype.componentDidMount = function () {\n // After we're rendered for the first time, tell Streamlit that our height\n // has changed.\n Streamlit.setFrameHeight();\n };\n StreamlitComponentBase.prototype.componentDidUpdate = function () {\n // After we're updated, tell Streamlit that our height may have changed.\n Streamlit.setFrameHeight();\n };\n return StreamlitComponentBase;\n}(React.PureComponent));\nexport { StreamlitComponentBase };\n/**\n * Wrapper for React-based Streamlit components.\n *\n * Bootstraps the communication interface between Streamlit and the component.\n */\nexport function withStreamlitConnection(WrappedComponent) {\n var ComponentWrapper = /** @class */ (function (_super) {\n __extends(ComponentWrapper, _super);\n function ComponentWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this.componentDidMount = function () {\n // Set up event listeners, and signal to Streamlit that we're ready.\n // We won't render the component until we receive the first RENDER_EVENT.\n Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, _this.onRenderEvent);\n Streamlit.setComponentReady();\n };\n _this.componentDidUpdate = function () {\n // If our child threw an error, we display it in render(). In this\n // case, the child won't be mounted and therefore won't call\n // `setFrameHeight` on its own. We do it here so that the rendered\n // error will be visible.\n if (_this.state.componentError != null) {\n Streamlit.setFrameHeight();\n }\n };\n _this.componentWillUnmount = function () {\n Streamlit.events.removeEventListener(Streamlit.RENDER_EVENT, _this.onRenderEvent);\n };\n /**\n * Streamlit is telling this component to redraw.\n * We save the render data in State, so that it can be passed to the\n * component in our own render() function.\n */\n _this.onRenderEvent = function (event) {\n // Update our state with the newest render data\n var renderEvent = event;\n _this.setState({ renderData: renderEvent.detail });\n };\n _this.render = function () {\n // If our wrapped component threw an error, display it.\n if (_this.state.componentError != null) {\n return (React.createElement(\"div\", null,\n React.createElement(\"h1\", null, \"Component Error\"),\n React.createElement(\"span\", null, _this.state.componentError.message)));\n }\n // Don't render until we've gotten our first RENDER_EVENT from Streamlit.\n if (_this.state.renderData == null) {\n return null;\n }\n return (React.createElement(WrappedComponent, { width: window.innerWidth, disabled: _this.state.renderData.disabled, args: _this.state.renderData.args, theme: _this.state.renderData.theme }));\n };\n _this.state = {\n renderData: undefined,\n componentError: undefined\n };\n return _this;\n }\n /**\n * Error boundary function. This will be called if our wrapped\n * component throws an error. We store the caught error in our state,\n * and display it in the next render().\n */\n ComponentWrapper.getDerivedStateFromError = function (error) {\n return { componentError: error };\n };\n return ComponentWrapper;\n }(React.PureComponent));\n return hoistNonReactStatics(ComponentWrapper, WrappedComponent);\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport default hoistNonReactStatics;\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && characters.charCodeAt(length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n}; // based on https://github.com/thysultan/stylis.js/blob/e6843c373ebcbbfade25ebcc23f540ed8508da0a/src/Tokenizer.js#L239-L244\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : function useInsertionEffect(create) {\n create();\n};\nfunction useInsertionEffectMaybe(create) {\n\n useInsertionEffect(create);\n}\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectMaybe(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n"],"sourceRoot":""} \ No newline at end of file