diff --git "a/streamlit_observable/frontend/build/static/js/2.b1c975ff.chunk.js.map" "b/streamlit_observable/frontend/build/static/js/2.b1c975ff.chunk.js.map" new file mode 100644--- /dev/null +++ "b/streamlit_observable/frontend/build/static/js/2.b1c975ff.chunk.js.map" @@ -0,0 +1 @@ +{"version":3,"sources":["../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.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/helpers/esm/createClass.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/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","../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/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.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/defineProperty.js","../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@observablehq/runtime/src/variable.js","../node_modules/@observablehq/runtime/src/errors.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@observablehq/runtime/src/noop.js","../node_modules/@observablehq/runtime/src/runtime.js","../node_modules/d3-dsv/src/dsv.js","../node_modules/d3-dsv/src/tsv.js","../node_modules/d3-dsv/src/csv.js","../node_modules/d3-dsv/src/autoType.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/d3-require/src/index.js","../node_modules/@observablehq/stdlib/src/dependency.js","../node_modules/@observablehq/stdlib/src/dependencies.js","../node_modules/@observablehq/stdlib/src/sqlite.js","../node_modules/@observablehq/stdlib/src/xlsx.js","../node_modules/@observablehq/stdlib/src/fileAttachment.js","../node_modules/@observablehq/stdlib/src/dom/element.js","../node_modules/@observablehq/stdlib/src/dom/uid.js","../node_modules/@observablehq/stdlib/src/dom/index.js","../node_modules/@observablehq/stdlib/src/dom/canvas.js","../node_modules/@observablehq/stdlib/src/dom/context2d.js","../node_modules/@observablehq/stdlib/src/dom/download.js","../node_modules/@observablehq/stdlib/src/dom/input.js","../node_modules/@observablehq/stdlib/src/dom/range.js","../node_modules/@observablehq/stdlib/src/dom/select.js","../node_modules/@observablehq/stdlib/src/dom/svg.js","../node_modules/@observablehq/stdlib/src/dom/text.js","../node_modules/@observablehq/stdlib/src/files/index.js","../node_modules/@observablehq/stdlib/src/files/buffer.js","../node_modules/@observablehq/stdlib/src/files/text.js","../node_modules/@observablehq/stdlib/src/files/url.js","../node_modules/@observablehq/stdlib/src/that.js","../node_modules/@observablehq/stdlib/src/generators/disposable.js","../node_modules/@observablehq/stdlib/src/generators/filter.js","../node_modules/@observablehq/stdlib/src/generators/observe.js","../node_modules/@observablehq/stdlib/src/generators/input.js","../node_modules/@observablehq/stdlib/src/generators/map.js","../node_modules/@observablehq/stdlib/src/generators/queue.js","../node_modules/@observablehq/stdlib/src/generators/range.js","../node_modules/@observablehq/stdlib/src/generators/index.js","../node_modules/@observablehq/stdlib/src/generators/valueAt.js","../node_modules/@observablehq/stdlib/src/generators/worker.js","../node_modules/@observablehq/stdlib/src/template.js","../node_modules/@observablehq/stdlib/src/html.js","../node_modules/@observablehq/stdlib/src/mutable.js","../node_modules/@observablehq/stdlib/src/now.js","../node_modules/@observablehq/stdlib/src/promises/delay.js","../node_modules/@observablehq/stdlib/src/promises/when.js","../node_modules/@observablehq/stdlib/src/promises/tick.js","../node_modules/@observablehq/stdlib/src/promises/index.js","../node_modules/@observablehq/stdlib/src/resolve.js","../node_modules/@observablehq/stdlib/src/require.js","../node_modules/@observablehq/stdlib/src/svg.js","../node_modules/@observablehq/stdlib/src/tex.js","../node_modules/@observablehq/stdlib/src/vegalite.js","../node_modules/@observablehq/stdlib/src/width.js","../node_modules/@observablehq/stdlib/src/library.js","../node_modules/@observablehq/stdlib/src/md.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/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.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/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/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","../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","../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/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@observablehq/runtime/src/constant.js","../node_modules/@observablehq/runtime/src/identity.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@observablehq/runtime/src/array.js","../node_modules/@observablehq/inspector/src/dispatch.js","../node_modules/@observablehq/inspector/src/array.js","../node_modules/@observablehq/inspector/src/inspectName.js","../node_modules/@observablehq/inspector/src/formatSymbol.js","../node_modules/@observablehq/inspector/src/object.js","../node_modules/@observablehq/inspector/src/immutable.js","../node_modules/@observablehq/inspector/src/expanded.js","../node_modules/@observablehq/inspector/src/collapsed.js","../node_modules/isoformat/src/format.js","../node_modules/@observablehq/inspector/src/formatError.js","../node_modules/@observablehq/inspector/src/formatRegExp.js","../node_modules/@observablehq/inspector/src/formatString.js","../node_modules/@observablehq/inspector/src/inspectFunction.js","../node_modules/@observablehq/inspector/src/inspect.js","../node_modules/@observablehq/inspector/src/formatDate.js","../node_modules/@observablehq/inspector/src/index.js","../node_modules/@observablehq/runtime/src/module.js","../node_modules/@observablehq/runtime/src/rethrow.js","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/global.js","../node_modules/react-dom/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../src/event.mjs","../../src/event-target.mjs","../node_modules/@observablehq/runtime/src/generatorish.js","../node_modules/@observablehq/runtime/src/load.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/regenerator-runtime/runtime.js","../node_modules/react-is/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/process/browser.js"],"names":["_classCallCheck","instance","Constructor","TypeError","module","exports","_inherits","subClass","superClass","prototype","Object","create","constructor","value","writable","configurable","_createSuper","Derived","result","Super","NewTarget","this","Reflect","construct","arguments","apply","_defineProperties","target","props","i","length","descriptor","enumerable","defineProperty","key","_createClass","protoProps","staticProps","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","undefined","_toConsumableArray","arr","Array","isArray","arrayLikeToArray","iter","Symbol","iterator","from","unsupportedIterableToArray","_slicedToArray","_arr","_n","_d","_e","_s","_i","next","push","_createForOfIteratorHelper","o","F","s","n","e","f","it","normalCompletion","didErr","step","_e2","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","source","forEach","getOwnPropertyDescriptors","defineProperties","_defineProperty","obj","require","_construct","Parent","Class","a","Function","bind","TYPE_NORMAL","TYPE_IMPLICIT","TYPE_DUPLICATE","no_observer","Variable","type","observer","variable","_observer","_definition","variable_undefined","_duplicate","_duplicates","_indegree","NaN","_inputs","_invalidate","noop","_module","_name","_outputs","Set","_promise","_reachable","_rejector","RuntimeError","Error","message","_type","_value","_version","variable_attach","_runtime","_dirty","add","variable_detach","delete","variable_duplicate","name","variable_defineImpl","inputs","definition","scope","_scope","runtime","_variables","get","found","size","_resolve","output","indexOf","_updates","set","_compute","_pending","pending","_fulfilled","fulfilled","_rejected","rejected","define","call","map","constant","import","remote","identity","input","_assertThisInitialized","ReferenceError","frame","requestAnimationFrame","setImmediate","variable_invalidation","variable_visibility","Runtime","builtins","Library","global","window_global","builtin","_precomputes","_computing","_init","_modules","Map","_disposed","_builtin","_global","postqueue","queue","precomputes","callback","runtime_defer","variables","reachable","variable_reachable","clear","variable_increment","pop","variable_compute","variable_circular","variable_error","variable_decrement","depth","p","variable_value","catch","variable_invalidator","variable_intersector","invalidation","promise","node","IntersectionObserver","_node","visible","entry","isIntersecting","observe","disconnect","y","value0","version","all","generatorish","return","generator","compute","onfulfilled","recompute","postcompute","_precompute","variable_generate","outputs","window","load","_computeSoon","_computeNow","dispose","v","Module","fileAttachments","FileAttachments","EOL","EOF","objectConverter","columns","JSON","stringify","join","inferColumns","rows","columnSet","row","column","pad","width","formatDate","date","year","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","isNaN","getUTCFullYear","getUTCMonth","getUTCDate","delimiter","reFormat","RegExp","DELIMITER","charCodeAt","parseRows","text","t","N","I","eof","eol","token","c","j","slice","replace","preformatBody","formatValue","formatRow","Date","test","parse","convert","customConverter","format","concat","formatBody","formatRows","tsv","dsv","tsvParse","tsvParseRows","csv","csvParse","csvParseRows","autoType","number","m","trim","match","fixtz","getHours","_cache","toString","has","Wrapper","metas","some","hasOwnProperty","origin","identifierRe","versionRe","extensionRe","mains","RequireError","main","meta","parseIdentifier","identifier","exec","path","resolveMeta","url","fetch","response","ok","redirected","json","base","startsWith","substring","URL","location","href","dependencies","peerDependencies","requireFrom","resolver","cache","requireBase","requireRelative","requireAbsolute","script","document","createElement","onload","remove","onerror","async","src","head","appendChild","merge","alias","aliases","modules","k","getter","isbuiltin","factory","dependency","amd","d3","plot","graphviz","highlight","katex","lodash","htl","jszip","marked","sql","vega","vegalite","vegaliteApi","arrow","arquero","topojson","exceljs","sqlite","init","locateFile","file","SQLiteDatabaseClient","db","_db","query","params","element","className","detail","r","strings","requireDefault","SQL","buffer","Database","Response","Blob","arrayBuffer","ArrayBuffer","Uint8Array","values","fromEntries","children","createTextNode","Workbook","workbook","_","sheetNames","worksheets","options","sname","includes","sheet","getWorksheet","range","headers","parseRange","c0","r0","c1","r1","headerRow","_rows","names","valueOf","findCell","toColumn","_row","getRow","hasValues","extract","cell","formula","sharedFormula","richText","hyperlink","d","specifier","columnCount","rowCount","split","fromCellReference","sc","String","fromCharCode","Math","floor","sr","pow","remote_fetch","array","typed","AbstractFile","blob","body","Image","baseURI","crossOrigin","assign","Arrow","Table","open","JSZip","ZipArchive","loadAsync","mimeType","DOMParser","parseFromString","xml","ExcelJS","xlsx","FileAttachment","_url","NoFileAttachments","archive","filenames","files","dir","ZipArchiveEntry","createObjectURL","namespaces","math","svg","xhtml","xlink","xmlns","count","Id","id","canvas","height","context2d","dpi","devicePixelRatio","style","context","getContext","scale","download","label","b","reset","revokeObjectURL","removeAttribute","textContent","disabled","onclick","event","eventPhase","attributes","prefix","createElementNS","setAttributeNS","setAttribute","min","max","select","option","uid","reader","FileReader","readAsArrayBuffer","readAsText","readAsDataURL","that","disposable","index","initialize","stale","x","valueof","valueAsNumber","valueAsDate","checked","multiple","selectedOptions","transform","start","stop","ceil","change","eventof","inputted","addEventListener","removeEventListener","shift","valueAt","isFinite","worker","Worker","terminate","template","render","wrapper","part","nodes","walker","string","parts","root","Node","createDocumentFragment","createTreeWalker","NodeFilter","SHOW_COMMENT","nextNode","currentNode","nodeValue","parentNode","replaceChild","childNodes","removeChild","firstChild","nodeType","innerHTML","importNode","content","Mutable","now","timeouts","when","time","delay","setTimeout","timeout","duration","tick","raw","vl","api","register","clientWidth","resized","w","Inputs","fileOf","Plot","SQLite","aq","dot","html","md","langPrefix","code","querySelectorAll","hl","block","highlightBlock","classList","getLanguage","language","registerLanguage","tex","link","rel","renderer","displayMode","DOM","Files","Generators","Promises","entries","property","_typeof","_possibleConstructorReturn","assertThisInitialized","_unsupportedIterableToArray","minLen","_setPrototypeOf","_AwaitValue","wrapped","_awaitAsyncGenerator","AsyncGenerator","front","back","resume","wrappedAwait","settle","_invoke","request","_wrapAsyncGenerator","_asyncGeneratorDelegate","inner","awaitWrap","waiting","pump","asyncIterator","flatbuffers","inRange","ToDictionary","Offset","SIZEOF_SHORT","SIZEOF_INT","FILE_IDENTIFIER_LENGTH","Encoding","UTF8_BYTES","UTF16_STRING","int32","Int32Array","float32","Float32Array","float64","Float64Array","isLittleEndian","Uint16Array","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","capacity","forceDefaults","dataBuffer","asUint8Array","bytes","subarray","position","offset","prep","additional_bytes","align_size","old_buf_size","growByteBuffer","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","notNested","new_buf_size","nbb","setPosition","startObject","numfields","endObject","vtableloc","trimmed_size","len","existing_vtable","vt1","outer_loop","vt2","readInt16","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","__offset","bb_pos","vtable_offset","__union","__string","opt_encoding","__indirect","__vector","__vector_len","__has_identifier","ident","Stream","tokens","endOfStream","read","prepend","unshift","decoderError","fatal","opt_code_point","TextDecoder","encoding","toLowerCase","_streaming","_BOMseen","_decoder","_fatal","Boolean","_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","temp","decode","byteOffset","byteLength","input_stream","code_points","cp","codePointsToString","encode","opt_string","u","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","_closedPromiseResolve","reason","_ensureOpen","_error","abort","close","BigIntUnavailableError","BigIntUnavailable","asIntN","asUintN","BigInt","BigIntCtor","BigIntAvailable","BigInt64ArrayUnavailableError","BigInt64Array","BigInt64ArrayCtor","BigUint64ArrayUnavailableError","BigUint64Array","BigUint64ArrayCtor","isNumber","isBoolean","isFunction","isObject","isPromise","isIterable","isAsyncIterable","isArrowJSON","isIteratorResult","isFileHandle","isFetchResponse","toArrayBufferViewIterator","SharedArrayBuf","SharedArrayBuffer","memcpy","targetByteOffset","sourceByteLength","targetByteLength","dst","joinUint8Arrays","chunks","sliced","xOffset","yOffset","xLen","yLen","collapseContiguousByteRanges","reduce","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","throw","releaseLock","byobReader","defaultReader","supportsBYOB","getBYOBReader","getDefaultReader","readFromBYOBReader","mode","readInto","onEvent","cleanup","events","evt","destroy","race","receiver","desc","flatbuf","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","data","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","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","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","headerType","headerOffset","bodyLength","startMessage","addVersion","addHeaderType","addHeader","addBodyLength","endMessage","BufferType","iterateBits","getBool","_data","_index","byte","bit","getBit","setBool","truncateBitmap","bitmap","alignedSize","packBools","xs","begin","byteIndex","remaining","popcnt_bit_range","lhs","rhs","sum","rhsInside","lhsInside","popcnt_array","cnt","pos","view","DataView","popcnt_uint32","getUint32","getUint16","getUint8","uint32","visit","getVisitFn","throwIfNotFound","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","compareInterval","indices","dictionary","proto","toStringTag","ArrayType","child","valueType","typeIdToChildIndex","idx","atomicDictionaryId","getId","strideForType","nullCount","childData","_nullCount","Data","stride","nullBitmap","childStride","_sliceBuffers","clone","_sliceChildren","newLength","fill","VALIDITY","TYPE","OFFSET","DATA","valueOffsetsOrChildren","valueToString","toPrimitive","createIsValidFunction","nullValues","fnBody","noNaNs","valueToCase","roundLengthUpToNearest64Bytes","BPE","_resize","extra","reserved","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","current","_flush","pendingLength","_flushPending","hashFn","_dictionaryOffset","_keysToIndices","valueToKey","keysToIndices","prev","_dictionary","curr","f64","u32","uint16ToFloat64","h","expo","sigf","sign","float64ToUint16","bignumToString","bignumToBigInt","isArrowBigNumSymbol","for","BigNum","SignedBigNum","UnsignedBigNum","DecimalBigNum","bignumToNumber","bn","hi","lo","signed","words","decimalToString","digits","base64","base32","checks","reverse","toJSON","hint","memo","num","BN","toBigInt","kParent","kRowIndex","kKeyToIdx","kIdxToVal","kCustomInspect","parent","numKeys","ktoi","itov","getValue","getIndex","ki","vi","kr","vr","callbackfn","thisArg","str","createRowProxy","getChildAt","defineRowProxyProperties","findIndex","tmp","setter","Proxy","getKey","RowProxyHandler","isExtensible","deleteProperty","preventExtensions","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","_chunks","_chunkOffsets","_length","_numChildren","chunk","isDictionary","_indices","Chunked","flatten","_sliceInternal","_children","vector","mid","isValidInternal","getInternal","indexOfInternal","toArray","arraySet","typedSet","chunkIndex","fromIndex","slices","chunkOffsets","chunkLength","chunkOffset","to","vectors","selectChunkArgs","_field","metadata","Column","rest","_chunk","selectArgs","Ctor","vals","_selectArgs","selectFieldArgs","_selectChunkArgs","res","selectVectorChildrenArgs","_selectVectorChildrenArgs","ret","fieldIndex","valueIndex","dictionaries","generateDictionaryMap","compareSchemas","columnNames","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","getRecordBatch","numDictionaries","getDictionaryBatch","buf","footer","getRootAsFooter","startRecordBatchesVector","rb","startDictionariesVector","dictionaryBatchesOffset","finishFooterBuffer","_footer","recordBatchesLength","dictionariesLength","fileBlock","FileBlock","createBlock","sync","toUint8Array","peek","AsyncByteStream","closed","cancel","readAt","getInt32","nBytes","_handle","stat","bytesRead","intAsHex","kPowersOfTen","L","R","product","lessThan","_times","_plus","out_buffer","fromString","out","posn","group","parseInt","substr","times","plus","left","right","this_high","other_high","negate","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","_headerType","_createHeader","_bodyLength","msg","messageHeaderFromJSON","_message","getRootAsMessage","decodeMessageHeader","isSchema","isRecordBatch","isDictionaryBatch","finishMessageBuffer","_nodes","_buffers","_isDelta","_id","decodeFieldNodes","batch","nodesLength","decodeBuffers","bufferRegions","buffersLength","decodeSchemaFields","fieldsLength","decodeFieldChildren","childrenLength","decodeCustomMetadata","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","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","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","compare","indexOfUnion","vectorIterator","getFn","nullByte","nullBit","nullableIterator","arrayOfVector","variableWidthColumnErrorMessage","____","visitFields","newDataType","throughIterable","throughAsyncIterable","getByteWidth","wrapNullableSet","VectorCtor","partialType0","getColumnAt","getColumnIndex","Writer","nameToIndex","selectAt","columnName","newIdx","oldToNew","_f","_fs","empty","fromStruct","tableFromIterable","tableFromAsyncIterable","isSync","opening","cols","_dictionaries","collect","fs","vs","DictionaryCollector","readAllSync","impl","_impl","isFile","isAsync","isStream","readRecordBatch","RecordBatchReader","fromArrowJSON","fromFileHandle","fromAsyncByteStream","fromByteStream","readAllAsync","_recordBatchIndex","_loadVectors","types","_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","func","countBy","scan","scanReverse","predicate","batchIndex","numRows","count_by","countByteLength","log","counts","_predicate","isBound","FilteredDataFrame","and","bm","hwm","pull","asyncIterableAsReadableDOMStream","iterableAsReadableDOMStream","readable","_arrayLikeToArray","arr2","_isNativeReflectConstruct","sham","dispatch","ownerDocument","defaultView","CustomEvent","createEvent","initEvent","dispatchEvent","isarray","isindex","inspectName","symbolToString","formatSymbol","symbol","FORBIDDEN","symbolsof","isown","tagof","ignore","SYMBOLS","modifier","arrayish","setish","immutableName","find","iterateMap","iterateSet","iterateImSet","iterateArray","iterateImArray","iterateProto","iterateObject","iterateImObject","objectPrototype","inspectExpanded","tag","span","stopPropagation","inspectCollapsed","display","insertBefore","lastChild","previousSibling","formatMapField","formatSetField","formatField","i1","formatPrototype","item","inspect","hasSelection","elem","sel","getSelection","containsNode","anchorNode","isSelfOrDescendant","focusNode","shallow","i0","formatEmpty","fragment","fallback","padStart","errorToString","regExpToString","templatify","templatifyChar","char","re","TYPE_ASYNC","TYPE_ASYNC_GENERATOR","TYPE_CLASS","TYPE_FUNCTION","TYPE_GENERATOR","formatFunction","cellname","spanType","expand","inspectFunction","expanded","textValue","lines","div","splitter","truncatedCount","formatString","formatRegExp","stack","formatError","spanOld","spanNew","contains","LOCATION_MATCH","Inspector","Element","Text","isnode","into","container","querySelector","_builtins","_source","variable_name","_copy","copy","sourceInput","sourceModule","redefine","derive","injects","injectModule","inject","console","warn","propIsEnumerable","toObject","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","g","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","privateData","WeakMap","wrappers","pd","retv","assert","setCancelFlag","passiveListener","cancelable","canceled","preventDefault","Event","eventTarget","currentTarget","stopped","immediateStopped","timeStamp","defineRedirectDescriptor","defineCallDescriptor","getWrapper","BaseEvent","isFunc","defineWrapper","isStopped","setPassiveListener","composedPath","stopImmediatePropagation","bubbles","composed","cancelBubble","listenersMap","getListeners","listeners","defineEventAttribute","eventTargetPrototype","eventName","listenerType","listener","newNode","passive","once","defineEventAttributeDescriptor","defineCustomEventTarget","eventNames","CustomEventTarget","EventTarget","optionsIsObj","capture","wrappedEvent","wrapEvent","handleEvent","setEventPhase","setCurrentTarget","defaultPrevented","notebook","library","runtime_module","q","z","A","B","C","encodeURIComponent","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","G","H","isReactComponent","setState","forceUpdate","isPureReactComponent","J","K","ref","__self","__source","M","$$typeof","_owner","O","P","Q","keyPrefix","S","V","U","escape","W","aa","X","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","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","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","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","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","activeElement","Gb","Fb","Hb","selected","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","Rb","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","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","hydrate","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","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","setProperty","charAt","nd","menuitem","area","br","embed","hr","img","keygen","param","track","wbr","od","is","qd","rd","sd","td","ud","vd","nextSibling","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","clearTimeout","Jd","Kd","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","se","ve","locale","which","te","ctrlKey","altKey","metaKey","ue","we","color","datetime","email","month","password","tel","week","xe","ye","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","parentWindow","$e","af","bf","cf","df","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorOffset","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","state","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","documentElement","tagName","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","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","componentDidUpdate","gi","pendingContext","ni","pi","qi","ii","retryTime","ji","unstable_avoidThisFallback","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","onClick","ti","ui","wi","xi","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","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","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","compareDocumentPosition","createRange","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","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","port2","port1","onmessage","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","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","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","Timeout","clearFn","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","onreadystatechange","installReadyStateChangeImplementation","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","title","browser","env","argv","versions","on","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask"],"mappings":"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","file":"static/js/2.b1c975ff.chunk.js","sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","module.exports = require(\"regenerator-runtime\");\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}","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}","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 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}","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}","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}","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 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}","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}","'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","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}","import {map} from \"./array\";\nimport constant from \"./constant\";\nimport {RuntimeError} from \"./errors\";\nimport identity from \"./identity\";\nimport noop from \"./noop\";\n\nexport var TYPE_NORMAL = 1; // a normal variable\nexport var TYPE_IMPLICIT = 2; // created on reference\nexport var TYPE_DUPLICATE = 3; // created on duplicate definition\n\nexport var no_observer = {};\n\nexport default function Variable(type, module, observer) {\n if (!observer) observer = no_observer;\n Object.defineProperties(this, {\n _observer: {value: observer, writable: true},\n _definition: {value: variable_undefined, writable: true},\n _duplicate: {value: undefined, writable: true},\n _duplicates: {value: undefined, writable: true},\n _indegree: {value: NaN, writable: true}, // The number of computing inputs.\n _inputs: {value: [], writable: true},\n _invalidate: {value: noop, writable: true},\n _module: {value: module},\n _name: {value: null, writable: true},\n _outputs: {value: new Set, writable: true},\n _promise: {value: Promise.resolve(undefined), writable: true},\n _reachable: {value: observer !== no_observer, writable: true}, // Is this variable transitively visible?\n _rejector: {value: variable_rejector(this)},\n _type: {value: type},\n _value: {value: undefined, writable: true},\n _version: {value: 0, writable: true}\n });\n}\n\nObject.defineProperties(Variable.prototype, {\n _pending: {value: variable_pending, writable: true, configurable: true},\n _fulfilled: {value: variable_fulfilled, writable: true, configurable: true},\n _rejected: {value: variable_rejected, writable: true, configurable: true},\n define: {value: variable_define, writable: true, configurable: true},\n delete: {value: variable_delete, writable: true, configurable: true},\n import: {value: variable_import, writable: true, configurable: true}\n});\n\nfunction variable_attach(variable) {\n variable._module._runtime._dirty.add(variable);\n variable._outputs.add(this);\n}\n\nfunction variable_detach(variable) {\n variable._module._runtime._dirty.add(variable);\n variable._outputs.delete(this);\n}\n\nfunction variable_undefined() {\n throw variable_undefined;\n}\n\nfunction variable_rejector(variable) {\n return function(error) {\n if (error === variable_undefined) throw new RuntimeError(variable._name + \" is not defined\", variable._name);\n if (error instanceof Error && error.message) throw new RuntimeError(error.message, variable._name);\n throw new RuntimeError(variable._name + \" could not be resolved\", variable._name);\n };\n}\n\nfunction variable_duplicate(name) {\n return function() {\n throw new RuntimeError(name + \" is defined more than once\");\n };\n}\n\nfunction variable_define(name, inputs, definition) {\n switch (arguments.length) {\n case 1: {\n definition = name, name = inputs = null;\n break;\n }\n case 2: {\n definition = inputs;\n if (typeof name === \"string\") inputs = null;\n else inputs = name, name = null;\n break;\n }\n }\n return variable_defineImpl.call(this,\n name == null ? null : name + \"\",\n inputs == null ? [] : map.call(inputs, this._module._resolve, this._module),\n typeof definition === \"function\" ? definition : constant(definition)\n );\n}\n\nfunction variable_defineImpl(name, inputs, definition) {\n var scope = this._module._scope, runtime = this._module._runtime;\n\n this._inputs.forEach(variable_detach, this);\n inputs.forEach(variable_attach, this);\n this._inputs = inputs;\n this._definition = definition;\n this._value = undefined;\n\n // Is this an active variable (that may require disposal)?\n if (definition === noop) runtime._variables.delete(this);\n else runtime._variables.add(this);\n\n // Did the variable’s name change? Time to patch references!\n if (name !== this._name || scope.get(name) !== this) {\n var error, found;\n\n if (this._name) { // Did this variable previously have a name?\n if (this._outputs.size) { // And did other variables reference this variable?\n scope.delete(this._name);\n found = this._module._resolve(this._name);\n found._outputs = this._outputs, this._outputs = new Set;\n found._outputs.forEach(function(output) { output._inputs[output._inputs.indexOf(this)] = found; }, this);\n found._outputs.forEach(runtime._updates.add, runtime._updates);\n runtime._dirty.add(found).add(this);\n scope.set(this._name, found);\n } else if ((found = scope.get(this._name)) === this) { // Do no other variables reference this variable?\n scope.delete(this._name); // It’s safe to delete!\n } else if (found._type === TYPE_DUPLICATE) { // Do other variables assign this name?\n found._duplicates.delete(this); // This variable no longer assigns this name.\n this._duplicate = undefined;\n if (found._duplicates.size === 1) { // Is there now only one variable assigning this name?\n found = found._duplicates.keys().next().value; // Any references are now fixed!\n error = scope.get(this._name);\n found._outputs = error._outputs, error._outputs = new Set;\n found._outputs.forEach(function(output) { output._inputs[output._inputs.indexOf(error)] = found; });\n found._definition = found._duplicate, found._duplicate = undefined;\n runtime._dirty.add(error).add(found);\n runtime._updates.add(found);\n scope.set(this._name, found);\n }\n } else {\n throw new Error;\n }\n }\n\n if (this._outputs.size) throw new Error;\n\n if (name) { // Does this variable have a new name?\n if (found = scope.get(name)) { // Do other variables reference or assign this name?\n if (found._type === TYPE_DUPLICATE) { // Do multiple other variables already define this name?\n this._definition = variable_duplicate(name), this._duplicate = definition;\n found._duplicates.add(this);\n } else if (found._type === TYPE_IMPLICIT) { // Are the variable references broken?\n this._outputs = found._outputs, found._outputs = new Set; // Now they’re fixed!\n this._outputs.forEach(function(output) { output._inputs[output._inputs.indexOf(found)] = this; }, this);\n runtime._dirty.add(found).add(this);\n scope.set(name, this);\n } else { // Does another variable define this name?\n found._duplicate = found._definition, this._duplicate = definition; // Now they’re duplicates.\n error = new Variable(TYPE_DUPLICATE, this._module);\n error._name = name;\n error._definition = this._definition = found._definition = variable_duplicate(name);\n error._outputs = found._outputs, found._outputs = new Set;\n error._outputs.forEach(function(output) { output._inputs[output._inputs.indexOf(found)] = error; });\n error._duplicates = new Set([this, found]);\n runtime._dirty.add(found).add(error);\n runtime._updates.add(found).add(error);\n scope.set(name, error);\n }\n } else {\n scope.set(name, this);\n }\n }\n\n this._name = name;\n }\n\n runtime._updates.add(this);\n runtime._compute();\n return this;\n}\n\nfunction variable_import(remote, name, module) {\n if (arguments.length < 3) module = name, name = remote;\n return variable_defineImpl.call(this, name + \"\", [module._resolve(remote + \"\")], identity);\n}\n\nfunction variable_delete() {\n return variable_defineImpl.call(this, null, [], noop);\n}\n\nfunction variable_pending() {\n if (this._observer.pending) this._observer.pending();\n}\n\nfunction variable_fulfilled(value) {\n if (this._observer.fulfilled) this._observer.fulfilled(value, this._name);\n}\n\nfunction variable_rejected(error) {\n if (this._observer.rejected) this._observer.rejected(error, this._name);\n}\n","export function RuntimeError(message, input) {\n this.message = message + \"\";\n this.input = input;\n}\n\nRuntimeError.prototype = Object.create(Error.prototype);\nRuntimeError.prototype.name = \"RuntimeError\";\nRuntimeError.prototype.constructor = RuntimeError;\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() {}\n","import {Library, FileAttachments} from \"@observablehq/stdlib\";\nimport {RuntimeError} from \"./errors\";\nimport generatorish from \"./generatorish\";\nimport load from \"./load\";\nimport Module from \"./module\";\nimport noop from \"./noop\";\nimport Variable, {TYPE_IMPLICIT, no_observer} from \"./variable\";\n\nconst frame = typeof requestAnimationFrame === \"function\" ? requestAnimationFrame : setImmediate;\n\nexport var variable_invalidation = {};\nexport var variable_visibility = {};\n\nexport default function Runtime(builtins = new Library, global = window_global) {\n var builtin = this.module();\n Object.defineProperties(this, {\n _dirty: {value: new Set},\n _updates: {value: new Set},\n _precomputes: {value: [], writable: true},\n _computing: {value: null, writable: true},\n _init: {value: null, writable: true},\n _modules: {value: new Map},\n _variables: {value: new Set},\n _disposed: {value: false, writable: true},\n _builtin: {value: builtin},\n _global: {value: global}\n });\n if (builtins) for (var name in builtins) {\n (new Variable(TYPE_IMPLICIT, builtin)).define(name, [], builtins[name]);\n }\n}\n\nObject.defineProperties(Runtime, {\n load: {value: load, writable: true, configurable: true}\n});\n\nObject.defineProperties(Runtime.prototype, {\n _precompute: {value: runtime_precompute, writable: true, configurable: true},\n _compute: {value: runtime_compute, writable: true, configurable: true},\n _computeSoon: {value: runtime_computeSoon, writable: true, configurable: true},\n _computeNow: {value: runtime_computeNow, writable: true, configurable: true},\n dispose: {value: runtime_dispose, writable: true, configurable: true},\n module: {value: runtime_module, writable: true, configurable: true},\n fileAttachments: {value: FileAttachments, writable: true, configurable: true}\n});\n\nfunction runtime_dispose() {\n this._computing = Promise.resolve();\n this._disposed = true;\n this._variables.forEach(v => {\n v._invalidate();\n v._version = NaN;\n });\n}\n\nfunction runtime_module(define, observer = noop) {\n let module;\n if (define === undefined) {\n if (module = this._init) {\n this._init = null;\n return module;\n }\n return new Module(this);\n }\n module = this._modules.get(define);\n if (module) return module;\n this._init = module = new Module(this);\n this._modules.set(define, module);\n try {\n define(this, observer);\n } finally {\n this._init = null;\n }\n return module;\n}\n\nfunction runtime_precompute(callback) {\n this._precomputes.push(callback);\n this._compute();\n}\n\nfunction runtime_compute() {\n return this._computing || (this._computing = this._computeSoon());\n}\n\nfunction runtime_computeSoon() {\n return new Promise(frame).then(() => this._disposed ? undefined : this._computeNow());\n}\n\nasync function runtime_computeNow() {\n var queue = [],\n variables,\n variable,\n precomputes = this._precomputes;\n\n // If there are any paused generators, resume them before computing so they\n // can update (if synchronous) before computing downstream variables.\n if (precomputes.length) {\n this._precomputes = [];\n for (const callback of precomputes) callback();\n await runtime_defer(3);\n }\n\n // Compute the reachability of the transitive closure of dirty variables.\n // Any newly-reachable variable must also be recomputed.\n // Any no-longer-reachable variable must be terminated.\n variables = new Set(this._dirty);\n variables.forEach(function(variable) {\n variable._inputs.forEach(variables.add, variables);\n const reachable = variable_reachable(variable);\n if (reachable > variable._reachable) {\n this._updates.add(variable);\n } else if (reachable < variable._reachable) {\n variable._invalidate();\n }\n variable._reachable = reachable;\n }, this);\n\n // Compute the transitive closure of updating, reachable variables.\n variables = new Set(this._updates);\n variables.forEach(function(variable) {\n if (variable._reachable) {\n variable._indegree = 0;\n variable._outputs.forEach(variables.add, variables);\n } else {\n variable._indegree = NaN;\n variables.delete(variable);\n }\n });\n\n this._computing = null;\n this._updates.clear();\n this._dirty.clear();\n\n // Compute the indegree of updating variables.\n variables.forEach(function(variable) {\n variable._outputs.forEach(variable_increment);\n });\n\n do {\n // Identify the root variables (those with no updating inputs).\n variables.forEach(function(variable) {\n if (variable._indegree === 0) {\n queue.push(variable);\n }\n });\n\n // Compute the variables in topological order.\n while (variable = queue.pop()) {\n variable_compute(variable);\n variable._outputs.forEach(postqueue);\n variables.delete(variable);\n }\n\n // Any remaining variables are circular, or depend on them.\n variables.forEach(function(variable) {\n if (variable_circular(variable)) {\n variable_error(variable, new RuntimeError(\"circular definition\"));\n variable._outputs.forEach(variable_decrement);\n variables.delete(variable);\n }\n });\n } while (variables.size);\n\n function postqueue(variable) {\n if (--variable._indegree === 0) {\n queue.push(variable);\n }\n }\n}\n\n// We want to give generators, if they’re defined synchronously, a chance to\n// update before computing downstream variables. This creates a synchronous\n// promise chain of the given depth that we’ll await before recomputing\n// downstream variables.\nfunction runtime_defer(depth = 0) {\n let p = Promise.resolve();\n for (let i = 0; i < depth; ++i) p = p.then(() => {});\n return p;\n}\n\nfunction variable_circular(variable) {\n const inputs = new Set(variable._inputs);\n for (const i of inputs) {\n if (i === variable) return true;\n i._inputs.forEach(inputs.add, inputs);\n }\n return false;\n}\n\nfunction variable_increment(variable) {\n ++variable._indegree;\n}\n\nfunction variable_decrement(variable) {\n --variable._indegree;\n}\n\nfunction variable_value(variable) {\n return variable._promise.catch(variable._rejector);\n}\n\nfunction variable_invalidator(variable) {\n return new Promise(function(resolve) {\n variable._invalidate = resolve;\n });\n}\n\nfunction variable_intersector(invalidation, variable) {\n let node = typeof IntersectionObserver === \"function\" && variable._observer && variable._observer._node;\n let visible = !node, resolve = noop, reject = noop, promise, observer;\n if (node) {\n observer = new IntersectionObserver(([entry]) => (visible = entry.isIntersecting) && (promise = null, resolve()));\n observer.observe(node);\n invalidation.then(() => (observer.disconnect(), observer = null, reject()));\n }\n return function(value) {\n if (visible) return Promise.resolve(value);\n if (!observer) return Promise.reject();\n if (!promise) promise = new Promise((y, n) => (resolve = y, reject = n));\n return promise.then(() => value);\n };\n}\n\nfunction variable_compute(variable) {\n variable._invalidate();\n variable._invalidate = noop;\n variable._pending();\n\n const value0 = variable._value;\n const version = ++variable._version;\n\n // Lazily-constructed invalidation variable; only constructed if referenced as an input.\n let invalidation = null;\n\n // If the variable doesn’t have any inputs, we can optimize slightly.\n const promise = variable._promise = (variable._inputs.length\n ? Promise.all(variable._inputs.map(variable_value)).then(define)\n : new Promise(resolve => resolve(variable._definition.call(value0))))\n .then(generate);\n\n // Compute the initial value of the variable.\n function define(inputs) {\n if (variable._version !== version) return;\n\n // Replace any reference to invalidation with the promise, lazily.\n for (var i = 0, n = inputs.length; i < n; ++i) {\n switch (inputs[i]) {\n case variable_invalidation: {\n inputs[i] = invalidation = variable_invalidator(variable);\n break;\n }\n case variable_visibility: {\n if (!invalidation) invalidation = variable_invalidator(variable);\n inputs[i] = variable_intersector(invalidation, variable);\n break;\n }\n }\n }\n\n return variable._definition.apply(value0, inputs);\n }\n\n // If the value is a generator, then retrieve its first value, and dispose of\n // the generator if the variable is invalidated. Note that the cell may\n // already have been invalidated here, in which case we need to terminate the\n // generator immediately!\n function generate(value) {\n if (generatorish(value)) {\n if (variable._version !== version) return void value.return();\n (invalidation || variable_invalidator(variable)).then(variable_return(value));\n return variable_generate(variable, version, value);\n }\n return value;\n }\n\n promise.then((value) => {\n if (variable._version !== version) return;\n variable._value = value;\n variable._fulfilled(value);\n }, (error) => {\n if (variable._version !== version) return;\n variable._value = undefined;\n variable._rejected(error);\n });\n}\n\nfunction variable_generate(variable, version, generator) {\n const runtime = variable._module._runtime;\n\n // Retrieve the next value from the generator; if successful, invoke the\n // specified callback. The returned promise resolves to the yielded value, or\n // to undefined if the generator is done.\n function compute(onfulfilled) {\n return new Promise(resolve => resolve(generator.next())).then(({done, value}) => {\n return done ? undefined : Promise.resolve(value).then(onfulfilled);\n });\n }\n\n // Retrieve the next value from the generator; if successful, fulfill the\n // variable, compute downstream variables, and schedule the next value to be\n // pulled from the generator at the start of the next animation frame. If not\n // successful, reject the variable, compute downstream variables, and return.\n function recompute() {\n const promise = compute((value) => {\n if (variable._version !== version) return;\n postcompute(value, promise).then(() => runtime._precompute(recompute));\n variable._fulfilled(value);\n return value;\n });\n promise.catch((error) => {\n if (variable._version !== version) return;\n postcompute(undefined, promise);\n variable._rejected(error);\n });\n }\n\n // After the generator fulfills or rejects, set its current value, promise,\n // and schedule any downstream variables for update.\n function postcompute(value, promise) {\n variable._value = value;\n variable._promise = promise;\n variable._outputs.forEach(runtime._updates.add, runtime._updates);\n return runtime._compute();\n }\n\n // When retrieving the first value from the generator, the promise graph is\n // already established, so we only need to queue the next pull.\n return compute((value) => {\n if (variable._version !== version) return;\n runtime._precompute(recompute);\n return value;\n });\n}\n\nfunction variable_error(variable, error) {\n variable._invalidate();\n variable._invalidate = noop;\n variable._pending();\n ++variable._version;\n variable._indegree = NaN;\n (variable._promise = Promise.reject(error)).catch(noop);\n variable._value = undefined;\n variable._rejected(error);\n}\n\nfunction variable_return(generator) {\n return function() {\n generator.return();\n };\n}\n\nfunction variable_reachable(variable) {\n if (variable._observer !== no_observer) return true; // Directly reachable.\n var outputs = new Set(variable._outputs);\n for (const output of outputs) {\n if (output._observer !== no_observer) return true;\n output._outputs.forEach(outputs.add, outputs);\n }\n return false;\n}\n\nfunction window_global(name) {\n return window[name];\n}\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","export default function autoType(object) {\n for (var key in object) {\n var value = object[key].trim(), number, m;\n if (!value) value = null;\n else if (value === \"true\") value = true;\n else if (value === \"false\") value = false;\n else if (value === \"NaN\") value = NaN;\n else if (!isNaN(number = +value)) value = number;\n else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n value = new Date(value);\n }\n else continue;\n object[key] = value;\n }\n return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nconst fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","import getPrototypeOf from \"./getPrototypeOf\";\nimport setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeFunction from \"./isNativeFunction\";\nimport construct from \"./construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","const metas = new Map;\nconst queue = [];\nconst map = queue.map;\nconst some = queue.some;\nconst hasOwnProperty = queue.hasOwnProperty;\nconst origin = \"https://cdn.jsdelivr.net/npm/\";\nconst identifierRe = /^((?:@[^/@]+\\/)?[^/@]+)(?:@([^/]+))?(?:\\/(.*))?$/;\nconst versionRe = /^\\d+\\.\\d+\\.\\d+(-[\\w-.+]+)?$/;\nconst extensionRe = /\\.[^/]*$/;\nconst mains = [\"unpkg\", \"jsdelivr\", \"browser\", \"main\"];\n\nexport class RequireError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\nRequireError.prototype.name = RequireError.name;\n\nfunction main(meta) {\n for (const key of mains) {\n const value = meta[key];\n if (typeof value === \"string\") {\n return extensionRe.test(value) ? value : `${value}.js`;\n }\n }\n}\n\nfunction parseIdentifier(identifier) {\n const match = identifierRe.exec(identifier);\n return match && {\n name: match[1],\n version: match[2],\n path: match[3]\n };\n}\n\nfunction resolveMeta(target) {\n const url = `${origin}${target.name}${target.version ? `@${target.version}` : \"\"}/package.json`;\n let meta = metas.get(url);\n if (!meta) metas.set(url, meta = fetch(url).then(response => {\n if (!response.ok) throw new RequireError(\"unable to load package.json\");\n if (response.redirected && !metas.has(response.url)) metas.set(response.url, meta);\n return response.json();\n }));\n return meta;\n}\n\nasync function resolve(name, base) {\n if (name.startsWith(origin)) name = name.substring(origin.length);\n if (/^(\\w+:)|\\/\\//i.test(name)) return name;\n if (/^[.]{0,2}\\//i.test(name)) return new URL(name, base == null ? location : base).href;\n if (!name.length || /^[\\s._]/.test(name) || /\\s$/.test(name)) throw new RequireError(\"illegal name\");\n const target = parseIdentifier(name);\n if (!target) return `${origin}${name}`;\n if (!target.version && base != null && base.startsWith(origin)) {\n const meta = await resolveMeta(parseIdentifier(base.substring(origin.length)));\n target.version = meta.dependencies && meta.dependencies[target.name] || meta.peerDependencies && meta.peerDependencies[target.name];\n }\n if (target.path && !extensionRe.test(target.path)) target.path += \".js\";\n if (target.path && target.version && versionRe.test(target.version)) return `${origin}${target.name}@${target.version}/${target.path}`;\n const meta = await resolveMeta(target);\n return `${origin}${meta.name}@${meta.version}/${target.path || main(meta) || \"index.js\"}`;\n}\n\nexport var require = requireFrom(resolve);\n\nexport function requireFrom(resolver) {\n const cache = new Map;\n const requireBase = requireRelative(null);\n\n function requireAbsolute(url) {\n if (typeof url !== \"string\") return url;\n let module = cache.get(url);\n if (!module) cache.set(url, module = new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.onload = () => {\n try { resolve(queue.pop()(requireRelative(url))); }\n catch (error) { reject(new RequireError(\"invalid module\")); }\n script.remove();\n };\n script.onerror = () => {\n reject(new RequireError(\"unable to load module\"));\n script.remove();\n };\n script.async = true;\n script.src = url;\n window.define = define;\n document.head.appendChild(script);\n }));\n return module;\n }\n\n function requireRelative(base) {\n return name => Promise.resolve(resolver(name, base)).then(requireAbsolute);\n }\n\n function requireAlias(aliases) {\n return requireFrom((name, base) => {\n if (name in aliases) {\n name = aliases[name], base = null;\n if (typeof name !== \"string\") return name;\n }\n return resolver(name, base);\n });\n }\n\n function require(name) {\n return arguments.length > 1\n ? Promise.all(map.call(arguments, requireBase)).then(merge)\n : requireBase(name);\n }\n\n require.alias = requireAlias;\n require.resolve = resolver;\n\n return require;\n}\n\nfunction merge(modules) {\n const o = {};\n for (const m of modules) {\n for (const k in m) {\n if (hasOwnProperty.call(m, k)) {\n if (m[k] == null) Object.defineProperty(o, k, {get: getter(m, k)});\n else o[k] = m[k];\n }\n }\n }\n return o;\n}\n\nfunction getter(object, name) {\n return () => object[name];\n}\n\nfunction isbuiltin(name) {\n name = name + \"\";\n return name === \"exports\" || name === \"module\";\n}\n\nfunction define(name, dependencies, factory) {\n const n = arguments.length;\n if (n < 2) factory = name, dependencies = [];\n else if (n < 3) factory = dependencies, dependencies = typeof name === \"string\" ? [] : name;\n queue.push(some.call(dependencies, isbuiltin) ? require => {\n const exports = {};\n const module = {exports};\n return Promise.all(map.call(dependencies, name => {\n name = name + \"\";\n return name === \"exports\" ? exports : name === \"module\" ? module : require(name);\n })).then(dependencies => {\n factory.apply(null, dependencies);\n return module.exports;\n });\n } : require => {\n return Promise.all(map.call(dependencies, require)).then(dependencies => {\n return typeof factory === \"function\" ? factory.apply(null, dependencies) : factory;\n });\n });\n}\n\ndefine.amd = {};\n","export default function dependency(name, version, main) {\n return {\n resolve(path = main) {\n return `https://cdn.jsdelivr.net/npm/${name}@${version}/${path}`;\n }\n };\n}\n","import dependency from \"./dependency.js\";\nexport const d3 = dependency(\"d3\", \"7.1.1\", \"dist/d3.min.js\");\nexport const inputs = dependency(\"@observablehq/inputs\", \"0.10.3\", \"dist/inputs.min.js\");\nexport const plot = dependency(\"@observablehq/plot\", \"0.2.9\", \"dist/plot.umd.min.js\");\nexport const graphviz = dependency(\"@observablehq/graphviz\", \"0.2.1\", \"dist/graphviz.min.js\");\nexport const highlight = dependency(\"@observablehq/highlight.js\", \"2.0.0\", \"highlight.min.js\");\nexport const katex = dependency(\"@observablehq/katex\", \"0.11.1\", \"dist/katex.min.js\");\nexport const lodash = dependency(\"lodash\", \"4.17.21\", \"lodash.min.js\");\nexport const htl = dependency(\"htl\", \"0.3.1\", \"dist/htl.min.js\");\nexport const jszip = dependency(\"jszip\", \"3.7.1\", \"dist/jszip.min.js\");\nexport const marked = dependency(\"marked\", \"0.3.12\", \"marked.min.js\");\nexport const sql = dependency(\"sql.js\", \"1.6.2\", \"dist/sql-wasm.js\");\nexport const vega = dependency(\"vega\", \"5.21.0\", \"build/vega.min.js\");\nexport const vegalite = dependency(\"vega-lite\", \"5.1.1\", \"build/vega-lite.min.js\");\nexport const vegaliteApi = dependency(\"vega-lite-api\", \"5.0.0\", \"build/vega-lite-api.min.js\");\nexport const arrow = dependency(\"apache-arrow\", \"4.0.1\", \"Arrow.es2015.min.js\");\nexport const arquero = dependency(\"arquero\", \"4.8.7\", \"dist/arquero.min.js\");\nexport const topojson = dependency(\"topojson-client\", \"3.1.0\", \"dist/topojson-client.min.js\");\nexport const exceljs = dependency(\"exceljs\", \"4.3.0\", \"dist/exceljs.min.js\");\n","import {require as requireDefault} from \"d3-require\";\nimport {sql} from \"./dependencies\";\n\nexport default async function sqlite(require) {\n const init = await require(sql.resolve());\n return init({locateFile: file => sql.resolve(`dist/${file}`)});\n}\n\nexport class SQLiteDatabaseClient {\n constructor(db) {\n Object.defineProperties(this, {\n _db: {value: db}\n });\n }\n static async open(source) {\n const [SQL, buffer] = await Promise.all([sqlite(requireDefault), Promise.resolve(source).then(load)]);\n return new SQLiteDatabaseClient(new SQL.Database(buffer));\n }\n async query(query, params) {\n return await exec(this._db, query, params);\n }\n async queryRow(query, params) {\n return (await this.query(query, params))[0] || null;\n }\n async explain(query, params) {\n const rows = await this.query(`EXPLAIN QUERY PLAN ${query}`, params);\n return element(\"pre\", {className: \"observablehq--inspect\"}, [\n text(rows.map(row => row.detail).join(\"\\n\"))\n ]);\n }\n async describe(object) {\n const rows = await (object === undefined\n ? this.query(`SELECT name FROM sqlite_master WHERE type = 'table'`)\n : this.query(`SELECT * FROM pragma_table_info(?)`, [object]));\n if (!rows.length) throw new Error(\"Not found\");\n const {columns} = rows;\n return element(\"table\", {value: rows}, [\n element(\"thead\", [element(\"tr\", columns.map(c => element(\"th\", [text(c)])))]),\n element(\"tbody\", rows.map(r => element(\"tr\", columns.map(c => element(\"td\", [text(r[c])])))))\n ]);\n }\n async sql(strings, ...args) {\n return this.query(strings.join(\"?\"), args);\n }\n}\nObject.defineProperty(SQLiteDatabaseClient.prototype, \"dialect\", {\n value: \"sqlite\"\n});\n\nfunction load(source) {\n return typeof source === \"string\" ? fetch(source).then(load)\n : source instanceof Response || source instanceof Blob ? source.arrayBuffer().then(load)\n : source instanceof ArrayBuffer ? new Uint8Array(source)\n : source;\n}\n\nasync function exec(db, query, params) {\n const [result] = await db.exec(query, params);\n if (!result) return [];\n const {columns, values} = result;\n const rows = values.map(row => Object.fromEntries(row.map((value, i) => [columns[i], value])));\n rows.columns = columns;\n return rows;\n}\n\nfunction element(name, props, children) {\n if (arguments.length === 2) children = props, props = undefined;\n const element = document.createElement(name);\n if (props !== undefined) for (const p in props) element[p] = props[p];\n if (children !== undefined) for (const c of children) element.appendChild(c);\n return element;\n}\n\nfunction text(value) {\n return document.createTextNode(value);\n}\n","export class Workbook {\n constructor(workbook) {\n Object.defineProperties(this, {\n _: {value: workbook},\n sheetNames: {\n value: workbook.worksheets.map((s) => s.name),\n enumerable: true,\n },\n });\n }\n sheet(name, options) {\n const sname =\n typeof name === \"number\"\n ? this.sheetNames[name]\n : this.sheetNames.includes((name += \"\"))\n ? name\n : null;\n if (sname == null) throw new Error(`Sheet not found: ${name}`);\n const sheet = this._.getWorksheet(sname);\n return extract(sheet, options);\n }\n}\n\nfunction extract(sheet, {range, headers} = {}) {\n let [[c0, r0], [c1, r1]] = parseRange(range, sheet);\n const headerRow = headers ? sheet._rows[r0++] : null;\n let names = new Set([\"#\"]);\n for (let n = c0; n <= c1; n++) {\n const value = headerRow ? valueOf(headerRow.findCell(n + 1)) : null;\n let name = (value && value + \"\") || toColumn(n);\n while (names.has(name)) name += \"_\";\n names.add(name);\n }\n names = new Array(c0).concat(Array.from(names));\n\n const output = new Array(r1 - r0 + 1);\n for (let r = r0; r <= r1; r++) {\n const row = (output[r - r0] = Object.create(null, {\"#\": {value: r + 1}}));\n const _row = sheet.getRow(r + 1);\n if (_row.hasValues)\n for (let c = c0; c <= c1; c++) {\n const value = valueOf(_row.findCell(c + 1));\n if (value != null) row[names[c + 1]] = value;\n }\n }\n\n output.columns = names.filter(() => true); // Filter sparse columns\n return output;\n}\n\nfunction valueOf(cell) {\n if (!cell) return;\n const {value} = cell;\n if (value && typeof value === \"object\" && !(value instanceof Date)) {\n if (value.formula || value.sharedFormula) {\n return value.result && value.result.error ? NaN : value.result;\n }\n if (value.richText) {\n return richText(value);\n }\n if (value.text) {\n let {text} = value;\n if (text.richText) text = richText(text);\n return value.hyperlink && value.hyperlink !== text\n ? `${value.hyperlink} ${text}`\n : text;\n }\n return value;\n }\n return value;\n}\n\nfunction richText(value) {\n return value.richText.map((d) => d.text).join(\"\");\n}\n\nfunction parseRange(specifier = \":\", {columnCount, rowCount}) {\n specifier += \"\";\n if (!specifier.match(/^[A-Z]*\\d*:[A-Z]*\\d*$/))\n throw new Error(\"Malformed range specifier\");\n const [[c0 = 0, r0 = 0], [c1 = columnCount - 1, r1 = rowCount - 1]] =\n specifier.split(\":\").map(fromCellReference);\n return [\n [c0, r0],\n [c1, r1],\n ];\n}\n\n// Returns the default column name for a zero-based column index.\n// For example: 0 -> \"A\", 1 -> \"B\", 25 -> \"Z\", 26 -> \"AA\", 27 -> \"AB\".\nfunction toColumn(c) {\n let sc = \"\";\n c++;\n do {\n sc = String.fromCharCode(64 + (c % 26 || 26)) + sc;\n } while ((c = Math.floor((c - 1) / 26)));\n return sc;\n}\n\n// Returns the zero-based indexes from a cell reference.\n// For example: \"A1\" -> [0, 0], \"B2\" -> [1, 1], \"AA10\" -> [26, 9].\nfunction fromCellReference(s) {\n const [, sc, sr] = s.match(/^([A-Z]*)(\\d*)$/);\n let c = 0;\n if (sc)\n for (let i = 0; i < sc.length; i++)\n c += Math.pow(26, sc.length - i - 1) * (sc.charCodeAt(i) - 64);\n return [c ? c - 1 : undefined, sr ? +sr - 1 : undefined];\n}\n","import {autoType, csvParse, csvParseRows, tsvParse, tsvParseRows} from \"d3-dsv\";\nimport {require as requireDefault} from \"d3-require\";\nimport {arrow, jszip, exceljs} from \"./dependencies.js\";\nimport {SQLiteDatabaseClient} from \"./sqlite.js\";\nimport {Workbook} from \"./xlsx.js\";\n\nasync function remote_fetch(file) {\n const response = await fetch(await file.url());\n if (!response.ok) throw new Error(`Unable to load file: ${file.name}`);\n return response;\n}\n\nasync function dsv(file, delimiter, {array = false, typed = false} = {}) {\n const text = await file.text();\n return (delimiter === \"\\t\"\n ? (array ? tsvParseRows : tsvParse)\n : (array ? csvParseRows : csvParse))(text, typed && autoType);\n}\n\nexport class AbstractFile {\n constructor(name) {\n Object.defineProperty(this, \"name\", {value: name, enumerable: true});\n }\n async blob() {\n return (await remote_fetch(this)).blob();\n }\n async arrayBuffer() {\n return (await remote_fetch(this)).arrayBuffer();\n }\n async text() {\n return (await remote_fetch(this)).text();\n }\n async json() {\n return (await remote_fetch(this)).json();\n }\n async stream() {\n return (await remote_fetch(this)).body;\n }\n async csv(options) {\n return dsv(this, \",\", options);\n }\n async tsv(options) {\n return dsv(this, \"\\t\", options);\n }\n async image(props) {\n const url = await this.url();\n return new Promise((resolve, reject) => {\n const i = new Image();\n if (new URL(url, document.baseURI).origin !== new URL(location).origin) {\n i.crossOrigin = \"anonymous\";\n }\n Object.assign(i, props);\n i.onload = () => resolve(i);\n i.onerror = () => reject(new Error(`Unable to load file: ${this.name}`));\n i.src = url;\n });\n }\n async arrow() {\n const [Arrow, response] = await Promise.all([requireDefault(arrow.resolve()), remote_fetch(this)]);\n return Arrow.Table.from(response);\n }\n async sqlite() {\n return SQLiteDatabaseClient.open(remote_fetch(this));\n }\n async zip() {\n const [JSZip, buffer] = await Promise.all([requireDefault(jszip.resolve()), this.arrayBuffer()]);\n return new ZipArchive(await JSZip.loadAsync(buffer));\n }\n async xml(mimeType = \"application/xml\") {\n return (new DOMParser).parseFromString(await this.text(), mimeType);\n }\n async html() {\n return this.xml(\"text/html\");\n }\n async xlsx() {\n const [ExcelJS, buffer] = await Promise.all([requireDefault(exceljs.resolve()), this.arrayBuffer()]);\n return new Workbook(await new ExcelJS.Workbook().xlsx.load(buffer));\n }\n}\n\nclass FileAttachment extends AbstractFile {\n constructor(url, name) {\n super(name);\n Object.defineProperty(this, \"_url\", {value: url});\n }\n async url() {\n return (await this._url) + \"\";\n }\n}\n\nexport function NoFileAttachments(name) {\n throw new Error(`File not found: ${name}`);\n}\n\nexport default function FileAttachments(resolve) {\n return Object.assign(\n name => {\n const url = resolve(name += \"\"); // Returns a Promise, string, or null.\n if (url == null) throw new Error(`File not found: ${name}`);\n return new FileAttachment(url, name);\n },\n {prototype: FileAttachment.prototype} // instanceof\n );\n}\n\nexport class ZipArchive {\n constructor(archive) {\n Object.defineProperty(this, \"_\", {value: archive});\n this.filenames = Object.keys(archive.files).filter(name => !archive.files[name].dir);\n }\n file(path) {\n const object = this._.file(path += \"\");\n if (!object || object.dir) throw new Error(`file not found: ${path}`);\n return new ZipArchiveEntry(object);\n }\n}\n\nclass ZipArchiveEntry extends AbstractFile {\n constructor(object) {\n super(object.name);\n Object.defineProperty(this, \"_\", {value: object});\n Object.defineProperty(this, \"_url\", {writable: true});\n }\n async url() {\n return this._url || (this._url = this.blob().then(URL.createObjectURL));\n }\n async blob() {\n return this._.async(\"blob\");\n }\n async arrayBuffer() {\n return this._.async(\"arraybuffer\");\n }\n async text() {\n return this._.async(\"text\");\n }\n async json() {\n return JSON.parse(await this.text());\n }\n}\n","var namespaces = {\n math: \"http://www.w3.org/1998/Math/MathML\",\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: \"http://www.w3.org/1999/xhtml\",\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n\nexport default function(name, attributes) {\n var prefix = name += \"\", i = prefix.indexOf(\":\"), value;\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n var element = namespaces.hasOwnProperty(prefix) // eslint-disable-line no-prototype-builtins\n ? document.createElementNS(namespaces[prefix], name)\n : document.createElement(name);\n if (attributes) for (var key in attributes) {\n prefix = key, i = prefix.indexOf(\":\"), value = attributes[key];\n if (i >= 0 && (prefix = key.slice(0, i)) !== \"xmlns\") key = key.slice(i + 1);\n if (namespaces.hasOwnProperty(prefix)) element.setAttributeNS(namespaces[prefix], key, value); // eslint-disable-line no-prototype-builtins\n else element.setAttribute(key, value);\n }\n return element;\n}\n","var count = 0;\n\nexport default function(name) {\n return new Id(\"O-\" + (name == null ? \"\" : name + \"-\") + ++count);\n}\n\nfunction Id(id) {\n this.id = id;\n this.href = new URL(`#${id}`, location) + \"\";\n}\n\nId.prototype.toString = function() {\n return \"url(\" + this.href + \")\";\n};\n","import canvas from \"./canvas.js\";\nimport context2d from \"./context2d.js\";\nimport download from \"./download.js\";\nimport element from \"./element.js\";\nimport input from \"./input.js\";\nimport range from \"./range.js\";\nimport select from \"./select.js\";\nimport svg from \"./svg.js\";\nimport text from \"./text.js\";\nimport uid from \"./uid.js\";\n\nexport default {\n canvas: canvas,\n context2d: context2d,\n download: download,\n element: element,\n input: input,\n range: range,\n select: select,\n svg: svg,\n text: text,\n uid: uid\n};\n","export default function(width, height) {\n var canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n","export default function(width, height, dpi) {\n if (dpi == null) dpi = devicePixelRatio;\n var canvas = document.createElement(\"canvas\");\n canvas.width = width * dpi;\n canvas.height = height * dpi;\n canvas.style.width = width + \"px\";\n var context = canvas.getContext(\"2d\");\n context.scale(dpi, dpi);\n return context;\n}\n","export default function(value, name = \"untitled\", label = \"Save\") {\n const a = document.createElement(\"a\");\n const b = a.appendChild(document.createElement(\"button\"));\n b.textContent = label;\n a.download = name;\n\n async function reset() {\n await new Promise(requestAnimationFrame);\n URL.revokeObjectURL(a.href);\n a.removeAttribute(\"href\");\n b.textContent = label;\n b.disabled = false;\n }\n\n a.onclick = async event => {\n b.disabled = true;\n if (a.href) return reset(); // Already saved.\n b.textContent = \"Saving…\";\n try {\n const object = await (typeof value === \"function\" ? value() : value);\n b.textContent = \"Download\";\n a.href = URL.createObjectURL(object); // eslint-disable-line require-atomic-updates\n } catch (ignore) {\n b.textContent = label;\n }\n if (event.eventPhase) return reset(); // Already downloaded.\n b.disabled = false;\n };\n\n return a;\n}\n","export default function(type) {\n var input = document.createElement(\"input\");\n if (type != null) input.type = type;\n return input;\n}\n","export default function(min, max, step) {\n if (arguments.length === 1) max = min, min = null;\n var input = document.createElement(\"input\");\n input.min = min = min == null ? 0 : +min;\n input.max = max = max == null ? 1 : +max;\n input.step = step == null ? \"any\" : step = +step;\n input.type = \"range\";\n return input;\n}\n","export default function(values) {\n var select = document.createElement(\"select\");\n Array.prototype.forEach.call(values, function(value) {\n var option = document.createElement(\"option\");\n option.value = option.textContent = value;\n select.appendChild(option);\n });\n return select;\n}\n","export default function(width, height) {\n var svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svg.setAttribute(\"viewBox\", [0, 0, width, height]);\n svg.setAttribute(\"width\", width);\n svg.setAttribute(\"height\", height);\n return svg;\n}\n","export default function(value) {\n return document.createTextNode(value);\n}\n","import buffer from \"./buffer.js\";\nimport text from \"./text.js\";\nimport url from \"./url.js\";\n\nexport default {\n buffer: buffer,\n text: text,\n url: url\n};\n","export default function(file) {\n return new Promise(function(resolve, reject) {\n var reader = new FileReader;\n reader.onload = function() { resolve(reader.result); };\n reader.onerror = reject;\n reader.readAsArrayBuffer(file);\n });\n}\n","export default function(file) {\n return new Promise(function(resolve, reject) {\n var reader = new FileReader;\n reader.onload = function() { resolve(reader.result); };\n reader.onerror = reject;\n reader.readAsText(file);\n });\n}\n","export default function(file) {\n return new Promise(function(resolve, reject) {\n var reader = new FileReader;\n reader.onload = function() { resolve(reader.result); };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n}\n","export default function that() {\n return this;\n}\n","import that from \"../that.js\";\n\nexport default function disposable(value, dispose) {\n let done = false;\n if (typeof dispose !== \"function\") {\n throw new Error(\"dispose is not a function\");\n }\n return {\n [Symbol.iterator]: that,\n next: () => done ? {done: true} : (done = true, {done: false, value}),\n return: () => (done = true, dispose(value), {done: true}),\n throw: () => ({done: done = true})\n };\n}\n","export default function*(iterator, test) {\n var result, index = -1;\n while (!(result = iterator.next()).done) {\n if (test(result.value, ++index)) {\n yield result.value;\n }\n }\n}\n","import that from \"../that.js\";\n\nexport default function(initialize) {\n let stale = false;\n let value;\n let resolve;\n const dispose = initialize(change);\n\n if (dispose != null && typeof dispose !== \"function\") {\n throw new Error(typeof dispose.then === \"function\"\n ? \"async initializers are not supported\"\n : \"initializer returned something, but not a dispose function\");\n }\n\n function change(x) {\n if (resolve) resolve(x), resolve = null;\n else stale = true;\n return value = x;\n }\n\n function next() {\n return {done: false, value: stale\n ? (stale = false, Promise.resolve(value))\n : new Promise(_ => (resolve = _))};\n }\n\n return {\n [Symbol.iterator]: that,\n throw: () => ({done: true}),\n return: () => (dispose != null && dispose(), {done: true}),\n next\n };\n}\n","import observe from \"./observe.js\";\n\nexport default function(input) {\n return observe(function(change) {\n var event = eventof(input), value = valueof(input);\n function inputted() { change(valueof(input)); }\n input.addEventListener(event, inputted);\n if (value !== undefined) change(value);\n return function() { input.removeEventListener(event, inputted); };\n });\n}\n\nfunction valueof(input) {\n switch (input.type) {\n case \"range\":\n case \"number\": return input.valueAsNumber;\n case \"date\": return input.valueAsDate;\n case \"checkbox\": return input.checked;\n case \"file\": return input.multiple ? input.files : input.files[0];\n case \"select-multiple\": return Array.from(input.selectedOptions, o => o.value);\n default: return input.value;\n }\n}\n\nfunction eventof(input) {\n switch (input.type) {\n case \"button\":\n case \"submit\":\n case \"checkbox\": return \"click\";\n case \"file\": return \"change\";\n default: return \"input\";\n }\n}\n","export default function*(iterator, transform) {\n var result, index = -1;\n while (!(result = iterator.next()).done) {\n yield transform(result.value, ++index);\n }\n}\n","import that from \"../that.js\";\n\nexport default function(initialize) {\n let resolve;\n const queue = [];\n const dispose = initialize(push);\n\n if (dispose != null && typeof dispose !== \"function\") {\n throw new Error(typeof dispose.then === \"function\"\n ? \"async initializers are not supported\"\n : \"initializer returned something, but not a dispose function\");\n }\n\n function push(x) {\n queue.push(x);\n if (resolve) resolve(queue.shift()), resolve = null;\n return x;\n }\n\n function next() {\n return {done: false, value: queue.length\n ? Promise.resolve(queue.shift())\n : new Promise(_ => (resolve = _))};\n }\n\n return {\n [Symbol.iterator]: that,\n throw: () => ({done: true}),\n return: () => (dispose != null && dispose(), {done: true}),\n next\n };\n}\n","export default function*(start, stop, step) {\n start = +start;\n stop = +stop;\n step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n var i = -1, n = Math.max(0, Math.ceil((stop - start) / step)) | 0;\n while (++i < n) {\n yield start + i * step;\n }\n}\n","import disposable from \"./disposable.js\";\nimport filter from \"./filter.js\";\nimport input from \"./input.js\";\nimport map from \"./map.js\";\nimport observe from \"./observe.js\";\nimport queue from \"./queue.js\";\nimport range from \"./range.js\";\nimport valueAt from \"./valueAt.js\";\nimport worker from \"./worker.js\";\n\nexport default {\n disposable: disposable,\n filter: filter,\n input: input,\n map: map,\n observe: observe,\n queue: queue,\n range: range,\n valueAt: valueAt,\n worker: worker\n};\n","export default function(iterator, i) {\n if (!isFinite(i = +i) || i < 0 || i !== i | 0) return;\n var result, index = -1;\n while (!(result = iterator.next()).done) {\n if (++index === i) {\n return result.value;\n }\n }\n}\n","import disposable from \"./disposable.js\";\n\nexport default function worker(source) {\n const url = URL.createObjectURL(new Blob([source], {type: \"text/javascript\"}));\n const worker = new Worker(url);\n return disposable(worker, () => {\n worker.terminate();\n URL.revokeObjectURL(url);\n });\n}\n","export default function template(render, wrapper) {\n return function(strings) {\n var string = strings[0],\n parts = [], part,\n root = null,\n node, nodes,\n walker,\n i, n, j, m, k = -1;\n\n // Concatenate the text using comments as placeholders.\n for (i = 1, n = arguments.length; i < n; ++i) {\n part = arguments[i];\n if (part instanceof Node) {\n parts[++k] = part;\n string += \"\";\n } else if (Array.isArray(part)) {\n for (j = 0, m = part.length; j < m; ++j) {\n node = part[j];\n if (node instanceof Node) {\n if (root === null) {\n parts[++k] = root = document.createDocumentFragment();\n string += \"\";\n }\n root.appendChild(node);\n } else {\n root = null;\n string += node;\n }\n }\n root = null;\n } else {\n string += part;\n }\n string += strings[i];\n }\n\n // Render the text.\n root = render(string);\n\n // Walk the rendered content to replace comment placeholders.\n if (++k > 0) {\n nodes = new Array(k);\n walker = document.createTreeWalker(root, NodeFilter.SHOW_COMMENT, null, false);\n while (walker.nextNode()) {\n node = walker.currentNode;\n if (/^o:/.test(node.nodeValue)) {\n nodes[+node.nodeValue.slice(2)] = node;\n }\n }\n for (i = 0; i < k; ++i) {\n if (node = nodes[i]) {\n node.parentNode.replaceChild(parts[i], node);\n }\n }\n }\n\n // Is the rendered content\n // … a parent of a single child? Detach and return the child.\n // … a document fragment? Replace the fragment with an element.\n // … some other node? Return it.\n return root.childNodes.length === 1 ? root.removeChild(root.firstChild)\n : root.nodeType === 11 ? ((node = wrapper()).appendChild(root), node)\n : root;\n };\n}\n","import template from \"./template.js\";\n\nexport default template(function(string) {\n var template = document.createElement(\"template\");\n template.innerHTML = string.trim();\n return document.importNode(template.content, true);\n}, function() {\n return document.createElement(\"span\");\n});\n","import observe from \"./generators/observe.js\";\n\nexport default function Mutable(value) {\n let change;\n Object.defineProperties(this, {\n generator: {value: observe(_ => void (change = _))},\n value: {get: () => value, set: x => change(value = x)} // eslint-disable-line no-setter-return\n });\n if (value !== undefined) change(value);\n}\n","export default function*() {\n while (true) {\n yield Date.now();\n }\n}\n","export default function(duration, value) {\n return new Promise(function(resolve) {\n setTimeout(function() {\n resolve(value);\n }, duration);\n });\n}\n","var timeouts = new Map;\n\nfunction timeout(now, time) {\n var t = new Promise(function(resolve) {\n timeouts.delete(time);\n var delay = time - now;\n if (!(delay > 0)) throw new Error(\"invalid time\");\n if (delay > 0x7fffffff) throw new Error(\"too long to wait\");\n setTimeout(resolve, delay);\n });\n timeouts.set(time, t);\n return t;\n}\n\nexport default function when(time, value) {\n var now;\n return (now = timeouts.get(time = +time)) ? now.then(() => value)\n : (now = Date.now()) >= time ? Promise.resolve(value)\n : timeout(now, time).then(() => value);\n}\n","import when from \"./when.js\";\n\nexport default function(duration, value) {\n return when(Math.ceil((Date.now() + 1) / duration) * duration, value);\n}\n","import delay from \"./delay.js\";\nimport tick from \"./tick.js\";\nimport when from \"./when.js\";\n\nexport default {\n delay: delay,\n tick: tick,\n when: when\n};\n","export default function resolve(name, base) {\n if (/^(\\w+:)|\\/\\//i.test(name)) return name;\n if (/^[.]{0,2}\\//i.test(name)) return new URL(name, base == null ? location : base).href;\n if (!name.length || /^[\\s._]/.test(name) || /\\s$/.test(name)) throw new Error(\"illegal name\");\n return \"https://unpkg.com/\" + name;\n}\n","import {require as requireDefault, requireFrom} from \"d3-require\";\n\nexport default function(resolve) {\n return resolve == null ? requireDefault : requireFrom(resolve);\n}\n","import template from \"./template.js\";\n\nexport default template(function(string) {\n var root = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n root.innerHTML = string.trim();\n return root;\n}, function() {\n return document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n});\n","import {katex} from \"./dependencies.js\";\n\nvar raw = String.raw;\n\nfunction style(href) {\n return new Promise(function(resolve, reject) {\n var link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = href;\n link.onerror = reject;\n link.onload = resolve;\n document.head.appendChild(link);\n });\n}\n\nexport default function tex(require) {\n return Promise.all([\n require(katex.resolve()),\n style(katex.resolve(\"dist/katex.min.css\"))\n ]).then(function(values) {\n var katex = values[0], tex = renderer();\n\n function renderer(options) {\n return function() {\n var root = document.createElement(\"div\");\n katex.render(raw.apply(String, arguments), root, options);\n return root.removeChild(root.firstChild);\n };\n }\n\n tex.options = renderer;\n tex.block = renderer({displayMode: true});\n return tex;\n });\n}\n","import {vega, vegalite, vegaliteApi} from \"./dependencies.js\";\n\nexport default async function vl(require) {\n const [v, vl, api] = await Promise.all([vega, vegalite, vegaliteApi].map(d => require(d.resolve())));\n return api.register(v, vl);\n}\n","import observe from \"./generators/observe.js\";\n\nexport default function() {\n return observe(function(change) {\n var width = change(document.body.clientWidth);\n function resized() {\n var w = document.body.clientWidth;\n if (w !== width) change(width = w);\n }\n window.addEventListener(\"resize\", resized);\n return function() {\n window.removeEventListener(\"resize\", resized);\n };\n });\n}\n","import {require as requireDefault} from \"d3-require\";\nimport DOM from \"./dom/index.js\";\nimport Files from \"./files/index.js\";\nimport {AbstractFile, NoFileAttachments} from \"./fileAttachment.js\";\nimport Generators from \"./generators/index.js\";\nimport html from \"./html.js\";\nimport md from \"./md.js\";\nimport Mutable from \"./mutable.js\";\nimport now from \"./now.js\";\nimport Promises from \"./promises/index.js\";\nimport resolve from \"./resolve.js\";\nimport requirer from \"./require.js\";\nimport SQLite, {SQLiteDatabaseClient} from \"./sqlite.js\";\nimport svg from \"./svg.js\";\nimport tex from \"./tex.js\";\nimport vegalite from \"./vegalite.js\";\nimport width from \"./width.js\";\nimport {arquero, arrow, d3, graphviz, htl, inputs, lodash, plot, topojson} from \"./dependencies.js\";\n\nexport default Object.assign(function Library(resolver) {\n const require = requirer(resolver);\n Object.defineProperties(this, properties({\n FileAttachment: () => NoFileAttachments,\n Arrow: () => require(arrow.resolve()),\n Inputs: () => require(inputs.resolve()).then(Inputs => ({...Inputs, file: Inputs.fileOf(AbstractFile)})),\n Mutable: () => Mutable,\n Plot: () => require(plot.resolve()),\n SQLite: () => SQLite(require),\n SQLiteDatabaseClient: () => SQLiteDatabaseClient,\n _: () => require(lodash.resolve()),\n aq: () => require.alias({\"apache-arrow\": arrow.resolve()})(arquero.resolve()),\n d3: () => require(d3.resolve()),\n dot: () => require(graphviz.resolve()),\n htl: () => require(htl.resolve()),\n html: () => html,\n md: () => md(require),\n now,\n require: () => require,\n resolve: () => resolve,\n svg: () => svg,\n tex: () => tex(require),\n topojson: () => require(topojson.resolve()),\n vl: () => vegalite(require),\n width,\n\n // Note: these are namespace objects, and thus exposed directly rather than\n // being wrapped in a function. This allows library.Generators to resolve,\n // rather than needing module.value.\n DOM,\n Files,\n Generators,\n Promises\n }));\n}, {resolve: requireDefault.resolve});\n\nfunction properties(values) {\n return Object.fromEntries(Object.entries(values).map(property));\n}\n\nfunction property([key, value]) {\n return [key, ({value, writable: true, enumerable: true})];\n}\n","import {highlight, marked} from \"./dependencies.js\";\nimport template from \"./template.js\";\n\nexport default function(require) {\n return require(marked.resolve()).then(function(marked) {\n return template(\n function(string) {\n var root = document.createElement(\"div\");\n root.innerHTML = marked(string, {langPrefix: \"\"}).trim();\n var code = root.querySelectorAll(\"pre code[class]\");\n if (code.length > 0) {\n require(highlight.resolve()).then(function(hl) {\n code.forEach(function(block) {\n function done() {\n hl.highlightBlock(block);\n block.parentNode.classList.add(\"observablehq--md-pre\");\n }\n if (hl.getLanguage(block.className)) {\n done();\n } else {\n require(highlight.resolve(\"async-languages/index.js\"))\n .then(index => {\n if (index.has(block.className)) {\n return require(highlight.resolve(\"async-languages/\" + index.get(block.className))).then(language => {\n hl.registerLanguage(block.className, language);\n });\n }\n })\n .then(done, done);\n }\n });\n });\n }\n return root;\n },\n function() {\n return document.createElement(\"div\");\n }\n );\n });\n}\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}","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}","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 _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","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","// 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","// 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","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}","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return x;\n}\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}","var prototype = Array.prototype;\nexport var map = prototype.map;\nexport var forEach = prototype.forEach;\n","export default function dispatch(node, type, detail) {\n detail = detail || {};\n var document = node.ownerDocument, event = document.defaultView.CustomEvent;\n if (typeof event === \"function\") {\n event = new event(type, {detail: detail});\n } else {\n event = document.createEvent(\"Event\");\n event.initEvent(type, false, false);\n event.detail = detail;\n }\n node.dispatchEvent(event);\n}\n","// TODO https://twitter.com/mbostock/status/702737065121742848\nexport function isarray(value) {\n return Array.isArray(value)\n || value instanceof Int8Array\n || value instanceof Int16Array\n || value instanceof Int32Array\n || value instanceof Uint8Array\n || value instanceof Uint8ClampedArray\n || value instanceof Uint16Array\n || value instanceof Uint32Array\n || value instanceof Float32Array\n || value instanceof Float64Array;\n}\n\n// Non-integer keys in arrays, e.g. [1, 2, 0.5: \"value\"].\nexport function isindex(key) {\n return key === (key | 0) + \"\";\n}\n","export default function inspectName(name) {\n const n = document.createElement(\"span\");\n n.className = \"observablehq--cellname\";\n n.textContent = `${name} = `;\n return n;\n}\n","const symbolToString = Symbol.prototype.toString;\n\n// Symbols do not coerce to strings; they must be explicitly converted.\nexport default function formatSymbol(symbol) {\n return symbolToString.call(symbol);\n}\n","const {getOwnPropertySymbols, prototype: {hasOwnProperty}} = Object;\nconst {toStringTag} = Symbol;\n\nexport const FORBIDDEN = {};\n\nexport const symbolsof = getOwnPropertySymbols;\n\nexport function isown(object, key) {\n return hasOwnProperty.call(object, key);\n}\n\nexport function tagof(object) {\n return object[toStringTag]\n || (object.constructor && object.constructor.name)\n || \"Object\";\n}\n\nexport function valueof(object, key) {\n try {\n const value = object[key];\n if (value) value.constructor; // Test for SecurityError.\n return value;\n } catch (ignore) {\n return FORBIDDEN;\n }\n}\n","const SYMBOLS = [\n { symbol: \"@@__IMMUTABLE_INDEXED__@@\", name: \"Indexed\", modifier: true },\n { symbol: \"@@__IMMUTABLE_KEYED__@@\", name: \"Keyed\", modifier: true },\n { symbol: \"@@__IMMUTABLE_LIST__@@\", name: \"List\", arrayish: true },\n { symbol: \"@@__IMMUTABLE_MAP__@@\", name: \"Map\" },\n {\n symbol: \"@@__IMMUTABLE_ORDERED__@@\",\n name: \"Ordered\",\n modifier: true,\n prefix: true\n },\n { symbol: \"@@__IMMUTABLE_RECORD__@@\", name: \"Record\" },\n {\n symbol: \"@@__IMMUTABLE_SET__@@\",\n name: \"Set\",\n arrayish: true,\n setish: true\n },\n { symbol: \"@@__IMMUTABLE_STACK__@@\", name: \"Stack\", arrayish: true }\n];\n\nexport function immutableName(obj) {\n try {\n let symbols = SYMBOLS.filter(({ symbol }) => obj[symbol] === true);\n if (!symbols.length) return;\n\n const name = symbols.find(s => !s.modifier);\n const prefix =\n name.name === \"Map\" && symbols.find(s => s.modifier && s.prefix);\n\n const arrayish = symbols.some(s => s.arrayish);\n const setish = symbols.some(s => s.setish);\n\n return {\n name: `${prefix ? prefix.name : \"\"}${name.name}`,\n symbols,\n arrayish: arrayish && !setish,\n setish\n };\n } catch (e) {\n return null;\n }\n}\n","import dispatch from \"./dispatch.js\";\nimport inspectName from \"./inspectName.js\";\nimport {isarray, isindex} from \"./array.js\";\nimport inspectCollapsed from \"./collapsed.js\";\nimport formatSymbol from \"./formatSymbol.js\";\nimport {inspect, replace} from \"./inspect.js\";\nimport {isown, symbolsof, tagof, valueof} from \"./object.js\";\nimport {immutableName} from \"./immutable.js\";\n\nconst {getPrototypeOf, getOwnPropertyDescriptors} = Object;\nconst objectPrototype = getPrototypeOf({});\n\nexport default function inspectExpanded(object, _, name, proto) {\n let arrayish = isarray(object);\n let tag, fields, next, n;\n\n if (object instanceof Map) {\n if (object instanceof object.constructor) {\n tag = `Map(${object.size})`;\n fields = iterateMap;\n } else { // avoid incompatible receiver error for prototype\n tag = \"Map()\";\n fields = iterateObject;\n }\n } else if (object instanceof Set) {\n if (object instanceof object.constructor) {\n tag = `Set(${object.size})`;\n fields = iterateSet;\n } else { // avoid incompatible receiver error for prototype\n tag = \"Set()\";\n fields = iterateObject;\n }\n } else if (arrayish) {\n tag = `${object.constructor.name}(${object.length})`;\n fields = iterateArray;\n } else if ((n = immutableName(object))) {\n tag = `Immutable.${n.name}${n.name === \"Record\" ? \"\" : `(${object.size})`}`;\n arrayish = n.arrayish;\n fields = n.arrayish\n ? iterateImArray\n : n.setish\n ? iterateImSet\n : iterateImObject;\n } else if (proto) {\n tag = tagof(object);\n fields = iterateProto;\n } else {\n tag = tagof(object);\n fields = iterateObject;\n }\n\n const span = document.createElement(\"span\");\n span.className = \"observablehq--expanded\";\n if (name) {\n span.appendChild(inspectName(name));\n }\n const a = span.appendChild(document.createElement(\"a\"));\n a.innerHTML = `\n \n `;\n a.appendChild(document.createTextNode(`${tag}${arrayish ? \" [\" : \" {\"}`));\n a.addEventListener(\"mouseup\", function(event) {\n event.stopPropagation();\n replace(span, inspectCollapsed(object, null, name, proto));\n });\n\n fields = fields(object);\n for (let i = 0; !(next = fields.next()).done && i < 20; ++i) {\n span.appendChild(next.value);\n }\n\n if (!next.done) {\n const a = span.appendChild(document.createElement(\"a\"));\n a.className = \"observablehq--field\";\n a.style.display = \"block\";\n a.appendChild(document.createTextNode(` … more`));\n a.addEventListener(\"mouseup\", function(event) {\n event.stopPropagation();\n span.insertBefore(next.value, span.lastChild.previousSibling);\n for (let i = 0; !(next = fields.next()).done && i < 19; ++i) {\n span.insertBefore(next.value, span.lastChild.previousSibling);\n }\n if (next.done) span.removeChild(span.lastChild.previousSibling);\n dispatch(span, \"load\");\n });\n }\n\n span.appendChild(document.createTextNode(arrayish ? \"]\" : \"}\"));\n\n return span;\n}\n\nfunction* iterateMap(map) {\n for (const [key, value] of map) {\n yield formatMapField(key, value);\n }\n yield* iterateObject(map);\n}\n\nfunction* iterateSet(set) {\n for (const value of set) {\n yield formatSetField(value);\n }\n yield* iterateObject(set);\n}\n\nfunction* iterateImSet(set) {\n for (const value of set) {\n yield formatSetField(value);\n }\n}\n\nfunction* iterateArray(array) {\n for (let i = 0, n = array.length; i < n; ++i) {\n if (i in array) {\n yield formatField(i, valueof(array, i), \"observablehq--index\");\n }\n }\n for (const key in array) {\n if (!isindex(key) && isown(array, key)) {\n yield formatField(key, valueof(array, key), \"observablehq--key\");\n }\n }\n for (const symbol of symbolsof(array)) {\n yield formatField(\n formatSymbol(symbol),\n valueof(array, symbol),\n \"observablehq--symbol\"\n );\n }\n}\n\nfunction* iterateImArray(array) {\n let i1 = 0;\n for (const n = array.size; i1 < n; ++i1) {\n yield formatField(i1, array.get(i1), true);\n }\n}\n\nfunction* iterateProto(object) {\n for (const key in getOwnPropertyDescriptors(object)) {\n yield formatField(key, valueof(object, key), \"observablehq--key\");\n }\n for (const symbol of symbolsof(object)) {\n yield formatField(\n formatSymbol(symbol),\n valueof(object, symbol),\n \"observablehq--symbol\"\n );\n }\n\n const proto = getPrototypeOf(object);\n if (proto && proto !== objectPrototype) {\n yield formatPrototype(proto);\n }\n}\n\nfunction* iterateObject(object) {\n for (const key in object) {\n if (isown(object, key)) {\n yield formatField(key, valueof(object, key), \"observablehq--key\");\n }\n }\n for (const symbol of symbolsof(object)) {\n yield formatField(\n formatSymbol(symbol),\n valueof(object, symbol),\n \"observablehq--symbol\"\n );\n }\n\n const proto = getPrototypeOf(object);\n if (proto && proto !== objectPrototype) {\n yield formatPrototype(proto);\n }\n}\n\nfunction* iterateImObject(object) {\n for (const [key, value] of object) {\n yield formatField(key, value, \"observablehq--key\");\n }\n}\n\nfunction formatPrototype(value) {\n const item = document.createElement(\"div\");\n const span = item.appendChild(document.createElement(\"span\"));\n item.className = \"observablehq--field\";\n span.className = \"observablehq--prototype-key\";\n span.textContent = ` `;\n item.appendChild(document.createTextNode(\": \"));\n item.appendChild(inspect(value, undefined, undefined, undefined, true));\n return item;\n}\n\nfunction formatField(key, value, className) {\n const item = document.createElement(\"div\");\n const span = item.appendChild(document.createElement(\"span\"));\n item.className = \"observablehq--field\";\n span.className = className;\n span.textContent = ` ${key}`;\n item.appendChild(document.createTextNode(\": \"));\n item.appendChild(inspect(value));\n return item;\n}\n\nfunction formatMapField(key, value) {\n const item = document.createElement(\"div\");\n item.className = \"observablehq--field\";\n item.appendChild(document.createTextNode(\" \"));\n item.appendChild(inspect(key));\n item.appendChild(document.createTextNode(\" => \"));\n item.appendChild(inspect(value));\n return item;\n}\n\nfunction formatSetField(value) {\n const item = document.createElement(\"div\");\n item.className = \"observablehq--field\";\n item.appendChild(document.createTextNode(\" \"));\n item.appendChild(inspect(value));\n return item;\n}\n","import {isarray, isindex} from \"./array.js\";\nimport inspectExpanded from \"./expanded.js\";\nimport formatSymbol from \"./formatSymbol.js\";\nimport inspectName from \"./inspectName.js\";\nimport {inspect, replace} from \"./inspect.js\";\nimport {isown, symbolsof, tagof, valueof} from \"./object.js\";\nimport {immutableName} from \"./immutable.js\";\n\nfunction hasSelection(elem) {\n const sel = window.getSelection();\n return (\n sel.type === \"Range\" &&\n (sel.containsNode(elem, true) ||\n sel.anchorNode.isSelfOrDescendant(elem) ||\n sel.focusNode.isSelfOrDescendant(elem))\n );\n}\n\nexport default function inspectCollapsed(object, shallow, name, proto) {\n let arrayish = isarray(object);\n let tag, fields, next, n;\n\n if (object instanceof Map) {\n if (object instanceof object.constructor) {\n tag = `Map(${object.size})`;\n fields = iterateMap;\n } else { // avoid incompatible receiver error for prototype\n tag = \"Map()\";\n fields = iterateObject;\n }\n } else if (object instanceof Set) {\n if (object instanceof object.constructor) {\n tag = `Set(${object.size})`;\n fields = iterateSet;\n } else { // avoid incompatible receiver error for prototype\n tag = \"Set()\";\n fields = iterateObject;\n }\n } else if (arrayish) {\n tag = `${object.constructor.name}(${object.length})`;\n fields = iterateArray;\n } else if ((n = immutableName(object))) {\n tag = `Immutable.${n.name}${n.name === 'Record' ? '' : `(${object.size})`}`;\n arrayish = n.arrayish;\n fields = n.arrayish ? iterateImArray : n.setish ? iterateImSet : iterateImObject;\n } else {\n tag = tagof(object);\n fields = iterateObject;\n }\n\n if (shallow) {\n const span = document.createElement(\"span\");\n span.className = \"observablehq--shallow\";\n if (name) {\n span.appendChild(inspectName(name));\n }\n span.appendChild(document.createTextNode(tag));\n span.addEventListener(\"mouseup\", function(event) {\n if (hasSelection(span)) return;\n event.stopPropagation();\n replace(span, inspectCollapsed(object));\n });\n return span;\n }\n\n const span = document.createElement(\"span\");\n span.className = \"observablehq--collapsed\";\n if (name) {\n span.appendChild(inspectName(name));\n }\n const a = span.appendChild(document.createElement(\"a\"));\n a.innerHTML = `\n \n `;\n a.appendChild(document.createTextNode(`${tag}${arrayish ? \" [\" : \" {\"}`));\n span.addEventListener(\"mouseup\", function(event) {\n if (hasSelection(span)) return;\n event.stopPropagation();\n replace(span, inspectExpanded(object, null, name, proto));\n }, true);\n\n fields = fields(object);\n for (let i = 0; !(next = fields.next()).done && i < 20; ++i) {\n if (i > 0) span.appendChild(document.createTextNode(\", \"));\n span.appendChild(next.value);\n }\n\n if (!next.done) span.appendChild(document.createTextNode(\", …\"));\n span.appendChild(document.createTextNode(arrayish ? \"]\" : \"}\"));\n\n return span;\n}\n\nfunction* iterateMap(map) {\n for (const [key, value] of map) {\n yield formatMapField(key, value);\n }\n yield* iterateObject(map);\n}\n\nfunction* iterateSet(set) {\n for (const value of set) {\n yield inspect(value, true);\n }\n yield* iterateObject(set);\n}\n\nfunction* iterateImSet(set) {\n for (const value of set) {\n yield inspect(value, true);\n }\n}\n\nfunction* iterateImArray(array) {\n let i0 = -1, i1 = 0;\n for (const n = array.size; i1 < n; ++i1) {\n if (i1 > i0 + 1) yield formatEmpty(i1 - i0 - 1);\n yield inspect(array.get(i1), true);\n i0 = i1;\n }\n if (i1 > i0 + 1) yield formatEmpty(i1 - i0 - 1);\n}\n\nfunction* iterateArray(array) {\n let i0 = -1, i1 = 0;\n for (const n = array.length; i1 < n; ++i1) {\n if (i1 in array) {\n if (i1 > i0 + 1) yield formatEmpty(i1 - i0 - 1);\n yield inspect(valueof(array, i1), true);\n i0 = i1;\n }\n }\n if (i1 > i0 + 1) yield formatEmpty(i1 - i0 - 1);\n for (const key in array) {\n if (!isindex(key) && isown(array, key)) {\n yield formatField(key, valueof(array, key), \"observablehq--key\");\n }\n }\n for (const symbol of symbolsof(array)) {\n yield formatField(formatSymbol(symbol), valueof(array, symbol), \"observablehq--symbol\");\n }\n}\n\nfunction* iterateObject(object) {\n for (const key in object) {\n if (isown(object, key)) {\n yield formatField(key, valueof(object, key), \"observablehq--key\");\n }\n }\n for (const symbol of symbolsof(object)) {\n yield formatField(formatSymbol(symbol), valueof(object, symbol), \"observablehq--symbol\");\n }\n}\n\nfunction* iterateImObject(object) {\n for (const [key, value] of object) {\n yield formatField(key, value, \"observablehq--key\");\n }\n}\n\nfunction formatEmpty(e) {\n const span = document.createElement(\"span\");\n span.className = \"observablehq--empty\";\n span.textContent = e === 1 ? \"empty\" : `empty × ${e}`;\n return span;\n}\n\nfunction formatField(key, value, className) {\n const fragment = document.createDocumentFragment();\n const span = fragment.appendChild(document.createElement(\"span\"));\n span.className = className;\n span.textContent = key;\n fragment.appendChild(document.createTextNode(\": \"));\n fragment.appendChild(inspect(value, true));\n return fragment;\n}\n\nfunction formatMapField(key, value) {\n const fragment = document.createDocumentFragment();\n fragment.appendChild(inspect(key, true));\n fragment.appendChild(document.createTextNode(\" => \"));\n fragment.appendChild(inspect(value, true));\n return fragment;\n}\n","export default function format(date, fallback) {\n if (!(date instanceof Date)) date = new Date(+date);\n if (isNaN(date)) return typeof fallback === \"function\" ? fallback(date) : fallback;\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const seconds = date.getUTCSeconds();\n const milliseconds = date.getUTCMilliseconds();\n return `${formatYear(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1, 2)}-${pad(date.getUTCDate(), 2)}${\n hours || minutes || seconds || milliseconds ? `T${pad(hours, 2)}:${pad(minutes, 2)}${\n seconds || milliseconds ? `:${pad(seconds, 2)}${\n milliseconds ? `.${pad(milliseconds, 3)}` : ``\n }` : ``\n }Z` : ``\n }`;\n}\n\nfunction formatYear(year) {\n return year < 0 ? `-${pad(-year, 6)}`\n : year > 9999 ? `+${pad(year, 6)}`\n : pad(year, 4);\n}\n\nfunction pad(value, width) {\n return `${value}`.padStart(width, \"0\");\n}\n","var errorToString = Error.prototype.toString;\n\nexport default function formatError(value) {\n return value.stack || errorToString.call(value);\n}\n","var regExpToString = RegExp.prototype.toString;\n\nexport default function formatRegExp(value) {\n return regExpToString.call(value);\n}\n","import inspectName from \"./inspectName.js\";\nimport {inspect, replace} from \"./inspect.js\";\n\n/* eslint-disable no-control-regex */\nconst NEWLINE_LIMIT = 20;\n\nexport default function formatString(string, shallow, expanded, name) {\n if (shallow === false) {\n // String has fewer escapes displayed with double quotes\n if (count(string, /[\"\\n]/g) <= count(string, /`|\\${/g)) {\n const span = document.createElement(\"span\");\n if (name) span.appendChild(inspectName(name));\n const textValue = span.appendChild(document.createElement(\"span\"));\n textValue.className = \"observablehq--string\";\n textValue.textContent = JSON.stringify(string);\n return span;\n }\n const lines = string.split(\"\\n\");\n if (lines.length > NEWLINE_LIMIT && !expanded) {\n const div = document.createElement(\"div\");\n if (name) div.appendChild(inspectName(name));\n const textValue = div.appendChild(document.createElement(\"span\"));\n textValue.className = \"observablehq--string\";\n textValue.textContent = \"`\" + templatify(lines.slice(0, NEWLINE_LIMIT).join(\"\\n\"));\n const splitter = div.appendChild(document.createElement(\"span\"));\n const truncatedCount = lines.length - NEWLINE_LIMIT;\n splitter.textContent = `Show ${truncatedCount} truncated line${truncatedCount > 1 ? \"s\": \"\"}`; splitter.className = \"observablehq--string-expand\";\n splitter.addEventListener(\"mouseup\", function (event) {\n event.stopPropagation();\n replace(div, inspect(string, shallow, true, name));\n });\n return div;\n }\n const span = document.createElement(\"span\");\n if (name) span.appendChild(inspectName(name));\n const textValue = span.appendChild(document.createElement(\"span\"));\n textValue.className = `observablehq--string${expanded ? \" observablehq--expanded\" : \"\"}`;\n textValue.textContent = \"`\" + templatify(string) + \"`\";\n return span;\n }\n\n const span = document.createElement(\"span\");\n if (name) span.appendChild(inspectName(name));\n const textValue = span.appendChild(document.createElement(\"span\"));\n textValue.className = \"observablehq--string\";\n textValue.textContent = JSON.stringify(string.length > 100 ?\n `${string.slice(0, 50)}…${string.slice(-49)}` : string);\n return span;\n}\n\nfunction templatify(string) {\n return string.replace(/[\\\\`\\x00-\\x09\\x0b-\\x19]|\\${/g, templatifyChar);\n}\n\nfunction templatifyChar(char) {\n var code = char.charCodeAt(0);\n switch (code) {\n case 0x8: return \"\\\\b\";\n case 0x9: return \"\\\\t\";\n case 0xb: return \"\\\\v\";\n case 0xc: return \"\\\\f\";\n case 0xd: return \"\\\\r\";\n }\n return code < 0x10 ? \"\\\\x0\" + code.toString(16)\n : code < 0x20 ? \"\\\\x\" + code.toString(16)\n : \"\\\\\" + char;\n}\n\nfunction count(string, re) {\n var n = 0;\n while (re.exec(string)) ++n;\n return n;\n}\n","import inspectName from \"./inspectName.js\";\nvar toString = Function.prototype.toString,\n TYPE_ASYNC = {prefix: \"async ƒ\"},\n TYPE_ASYNC_GENERATOR = {prefix: \"async ƒ*\"},\n TYPE_CLASS = {prefix: \"class\"},\n TYPE_FUNCTION = {prefix: \"ƒ\"},\n TYPE_GENERATOR = {prefix: \"ƒ*\"};\n\nexport default function inspectFunction(f, name) {\n var type, m, t = toString.call(f);\n\n switch (f.constructor && f.constructor.name) {\n case \"AsyncFunction\": type = TYPE_ASYNC; break;\n case \"AsyncGeneratorFunction\": type = TYPE_ASYNC_GENERATOR; break;\n case \"GeneratorFunction\": type = TYPE_GENERATOR; break;\n default: type = /^class\\b/.test(t) ? TYPE_CLASS : TYPE_FUNCTION; break;\n }\n\n // A class, possibly named.\n // class Name\n if (type === TYPE_CLASS) {\n return formatFunction(type, \"\", name);\n }\n\n // An arrow function with a single argument.\n // foo =>\n // async foo =>\n if ((m = /^(?:async\\s*)?(\\w+)\\s*=>/.exec(t))) {\n return formatFunction(type, \"(\" + m[1] + \")\", name);\n }\n\n // An arrow function with parenthesized arguments.\n // (…)\n // async (…)\n if ((m = /^(?:async\\s*)?\\(\\s*(\\w+(?:\\s*,\\s*\\w+)*)?\\s*\\)/.exec(t))) {\n return formatFunction(type, m[1] ? \"(\" + m[1].replace(/\\s*,\\s*/g, \", \") + \")\" : \"()\", name);\n }\n\n // A function, possibly: async, generator, anonymous, simply arguments.\n // function name(…)\n // function* name(…)\n // async function name(…)\n // async function* name(…)\n if ((m = /^(?:async\\s*)?function(?:\\s*\\*)?(?:\\s*\\w+)?\\s*\\(\\s*(\\w+(?:\\s*,\\s*\\w+)*)?\\s*\\)/.exec(t))) {\n return formatFunction(type, m[1] ? \"(\" + m[1].replace(/\\s*,\\s*/g, \", \") + \")\" : \"()\", name);\n }\n\n // Something else, like destructuring, comments or default values.\n return formatFunction(type, \"(…)\", name);\n}\n\nfunction formatFunction(type, args, cellname) {\n var span = document.createElement(\"span\");\n span.className = \"observablehq--function\";\n if (cellname) {\n span.appendChild(inspectName(cellname));\n }\n var spanType = span.appendChild(document.createElement(\"span\"));\n spanType.className = \"observablehq--keyword\";\n spanType.textContent = type.prefix;\n span.appendChild(document.createTextNode(args));\n return span;\n}\n","import dispatch from \"./dispatch.js\";\nimport inspectCollapsed from \"./collapsed.js\";\nimport inspectExpanded from \"./expanded.js\";\nimport inspectName from \"./inspectName.js\";\nimport formatDate from \"./formatDate.js\";\nimport formatError from \"./formatError.js\";\nimport formatRegExp from \"./formatRegExp.js\";\nimport formatString from \"./formatString.js\";\nimport formatSymbol from \"./formatSymbol.js\";\nimport inspectFunction from \"./inspectFunction.js\";\nimport {FORBIDDEN} from \"./object.js\";\n\nconst {prototype: {toString}} = Object;\n\nexport function inspect(value, shallow, expand, name, proto) {\n let type = typeof value;\n switch (type) {\n case \"boolean\":\n case \"undefined\": { value += \"\"; break; }\n case \"number\": { value = value === 0 && 1 / value < 0 ? \"-0\" : value + \"\"; break; }\n case \"bigint\": { value = value + \"n\"; break; }\n case \"symbol\": { value = formatSymbol(value, name); break; }\n case \"function\": { return inspectFunction(value, name); }\n case \"string\": { return formatString(value, shallow, expand, name); }\n default: {\n if (value === null) { type = null, value = \"null\"; break; }\n if (value instanceof Date) { type = \"date\", value = formatDate(value, name); break; }\n if (value === FORBIDDEN) { type = \"forbidden\", value = \"[forbidden]\"; break; }\n switch (toString.call(value)) {\n case \"[object RegExp]\": { type = \"regexp\", value = formatRegExp(value, name); break; }\n case \"[object Error]\": // https://github.com/lodash/lodash/blob/master/isError.js#L26\n case \"[object DOMException]\": { type = \"error\", value = formatError(value, name); break; }\n default: return (expand ? inspectExpanded : inspectCollapsed)(value, shallow, name, proto);\n }\n break;\n }\n }\n const span = document.createElement(\"span\");\n if (name) span.appendChild(inspectName(name));\n const n = span.appendChild(document.createElement(\"span\"));\n n.className = `observablehq--${type}`;\n n.textContent = value;\n return span;\n}\n\nexport function replace(spanOld, spanNew) {\n if (spanOld.classList.contains(\"observablehq--inspect\")) spanNew.classList.add(\"observablehq--inspect\");\n spanOld.parentNode.replaceChild(spanNew, spanOld);\n dispatch(spanNew, \"load\");\n}\n","import {format} from \"isoformat\";\n\nexport default function formatDate(date) {\n return format(date, \"Invalid Date\");\n}\n","import dispatch from \"./dispatch.js\";\nimport {inspect} from \"./inspect.js\";\nimport inspectName from \"./inspectName.js\";\n\nconst LOCATION_MATCH = /\\s+\\(\\d+:\\d+\\)$/m;\n\nexport class Inspector {\n constructor(node) {\n if (!node) throw new Error(\"invalid node\");\n this._node = node;\n node.classList.add(\"observablehq\");\n }\n pending() {\n const {_node} = this;\n _node.classList.remove(\"observablehq--error\");\n _node.classList.add(\"observablehq--running\");\n }\n fulfilled(value, name) {\n const {_node} = this;\n if (!isnode(value) || (value.parentNode && value.parentNode !== _node)) {\n value = inspect(value, false, _node.firstChild // TODO Do this better.\n && _node.firstChild.classList\n && _node.firstChild.classList.contains(\"observablehq--expanded\"), name);\n value.classList.add(\"observablehq--inspect\");\n }\n _node.classList.remove(\"observablehq--running\", \"observablehq--error\");\n if (_node.firstChild !== value) {\n if (_node.firstChild) {\n while (_node.lastChild !== _node.firstChild) _node.removeChild(_node.lastChild);\n _node.replaceChild(value, _node.firstChild);\n } else {\n _node.appendChild(value);\n }\n }\n dispatch(_node, \"update\");\n }\n rejected(error, name) {\n const {_node} = this;\n _node.classList.remove(\"observablehq--running\");\n _node.classList.add(\"observablehq--error\");\n while (_node.lastChild) _node.removeChild(_node.lastChild);\n var div = document.createElement(\"div\");\n div.className = \"observablehq--inspect\";\n if (name) div.appendChild(inspectName(name));\n div.appendChild(document.createTextNode((error + \"\").replace(LOCATION_MATCH, \"\")));\n _node.appendChild(div);\n dispatch(_node, \"error\", {error: error});\n }\n}\n\nInspector.into = function(container) {\n if (typeof container === \"string\") {\n container = document.querySelector(container);\n if (container == null) throw new Error(\"container not found\");\n }\n return function() {\n return new Inspector(container.appendChild(document.createElement(\"div\")));\n };\n};\n\n// Returns true if the given value is something that should be added to the DOM\n// by the inspector, rather than being inspected. This deliberately excludes\n// DocumentFragment since appending a fragment “dissolves” (mutates) the\n// fragment, and we wish for the inspector to not have side-effects. Also,\n// HTMLElement.prototype is an instanceof Element, but not an element!\nfunction isnode(value) {\n return (value instanceof Element || value instanceof Text)\n && (value instanceof value.constructor);\n}\n","import {forEach} from \"./array\";\nimport constant from \"./constant\";\nimport {RuntimeError} from \"./errors\";\nimport identity from \"./identity\";\nimport rethrow from \"./rethrow\";\nimport {variable_invalidation, variable_visibility} from \"./runtime\";\nimport Variable, {TYPE_DUPLICATE, TYPE_IMPLICIT, TYPE_NORMAL, no_observer} from \"./variable\";\n\nexport default function Module(runtime, builtins = []) {\n Object.defineProperties(this, {\n _runtime: {value: runtime},\n _scope: {value: new Map},\n _builtins: {value: new Map([\n [\"invalidation\", variable_invalidation],\n [\"visibility\", variable_visibility],\n ...builtins\n ])},\n _source: {value: null, writable: true}\n });\n}\n\nObject.defineProperties(Module.prototype, {\n _copy: {value: module_copy, writable: true, configurable: true},\n _resolve: {value: module_resolve, writable: true, configurable: true},\n redefine: {value: module_redefine, writable: true, configurable: true},\n define: {value: module_define, writable: true, configurable: true},\n derive: {value: module_derive, writable: true, configurable: true},\n import: {value: module_import, writable: true, configurable: true},\n value: {value: module_value, writable: true, configurable: true},\n variable: {value: module_variable, writable: true, configurable: true},\n builtin: {value: module_builtin, writable: true, configurable: true}\n});\n\nfunction module_redefine(name) {\n var v = this._scope.get(name);\n if (!v) throw new RuntimeError(name + \" is not defined\");\n if (v._type === TYPE_DUPLICATE) throw new RuntimeError(name + \" is defined more than once\");\n return v.define.apply(v, arguments);\n}\n\nfunction module_define() {\n var v = new Variable(TYPE_NORMAL, this);\n return v.define.apply(v, arguments);\n}\n\nfunction module_import() {\n var v = new Variable(TYPE_NORMAL, this);\n return v.import.apply(v, arguments);\n}\n\nfunction module_variable(observer) {\n return new Variable(TYPE_NORMAL, this, observer);\n}\n\nasync function module_value(name) {\n var v = this._scope.get(name);\n if (!v) throw new RuntimeError(name + \" is not defined\");\n if (v._observer === no_observer) {\n v._observer = true;\n this._runtime._dirty.add(v);\n }\n await this._runtime._compute();\n return v._promise;\n}\n\nfunction module_derive(injects, injectModule) {\n var copy = new Module(this._runtime, this._builtins);\n copy._source = this;\n forEach.call(injects, function(inject) {\n if (typeof inject !== \"object\") inject = {name: inject + \"\"};\n if (inject.alias == null) inject.alias = inject.name;\n copy.import(inject.name, inject.alias, injectModule);\n });\n Promise.resolve().then(() => {\n const modules = new Set([this]);\n for (const module of modules) {\n for (const variable of module._scope.values()) {\n if (variable._definition === identity) { // import\n const module = variable._inputs[0]._module;\n const source = module._source || module;\n if (source === this) { // circular import-with!\n console.warn(\"circular module definition; ignoring\"); // eslint-disable-line no-console\n return;\n }\n modules.add(source);\n }\n }\n }\n this._copy(copy, new Map);\n });\n return copy;\n}\n\nfunction module_copy(copy, map) {\n copy._source = this;\n map.set(this, copy);\n for (const [name, source] of this._scope) {\n var target = copy._scope.get(name);\n if (target && target._type === TYPE_NORMAL) continue; // injection\n if (source._definition === identity) { // import\n var sourceInput = source._inputs[0],\n sourceModule = sourceInput._module;\n copy.import(sourceInput._name, name, map.get(sourceModule)\n || (sourceModule._source\n ? sourceModule._copy(new Module(copy._runtime, copy._builtins), map) // import-with\n : sourceModule));\n } else {\n copy.define(name, source._inputs.map(variable_name), source._definition);\n }\n }\n return copy;\n}\n\nfunction module_resolve(name) {\n var variable = this._scope.get(name), value;\n if (!variable) {\n variable = new Variable(TYPE_IMPLICIT, this);\n if (this._builtins.has(name)) {\n variable.define(name, constant(this._builtins.get(name)));\n } else if (this._runtime._builtin._scope.has(name)) {\n variable.import(name, this._runtime._builtin);\n } else {\n try {\n value = this._runtime._global(name);\n } catch (error) {\n return variable.define(name, rethrow(error));\n }\n if (value === undefined) {\n this._scope.set(variable._name = name, variable);\n } else {\n variable.define(name, constant(value));\n }\n }\n }\n return variable;\n}\n\nfunction module_builtin(name, value) {\n this._builtins.set(name, value);\n}\n\nfunction variable_name(variable) {\n return variable._name;\n}\n","export default function(e) {\n return function() {\n throw e;\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 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","'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","'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","/**\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 generatorish(value) {\n return value\n && typeof value.next === \"function\"\n && typeof value.return === \"function\";\n}\n","import {Library} from \"@observablehq/stdlib\";\nimport Runtime from \"./runtime\";\n\nexport default function load(notebook, library, observer) {\n if (typeof library == \"function\") observer = library, library = null;\n if (typeof observer !== \"function\") throw new Error(\"invalid observer\");\n if (library == null) library = new Library();\n\n const {modules, id} = notebook;\n const map = new Map;\n const runtime = new Runtime(library);\n const main = runtime_module(id);\n\n function runtime_module(id) {\n let module = map.get(id);\n if (!module) map.set(id, module = runtime.module());\n return module;\n }\n\n for (const m of modules) {\n const module = runtime_module(m.id);\n let i = 0;\n for (const v of m.variables) {\n if (v.from) module.import(v.remote, v.name, runtime_module(v.from));\n else if (module === main) module.variable(observer(v, i, m.variables)).define(v.name, v.inputs, v.value);\n else module.define(v.name, v.inputs, v.value);\n ++i;\n }\n }\n\n return runtime;\n}\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","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.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 b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a