UNPKG

mini-program-cljs

Version:

1 lines 343 kB
["^ ","~:output",["^ ","~:js","goog.provide('datascript.query');\ndatascript.query.lru_cache_size = (100);\n\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ndatascript.query.Context = (function (rels,sources,rules,__meta,__extmap,__hash){\nthis.rels = rels;\nthis.sources = sources;\nthis.rules = rules;\nthis.__meta = __meta;\nthis.__extmap = __extmap;\nthis.__hash = __hash;\nthis.cljs$lang$protocol_mask$partition0$ = 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ = 139264;\n});\n(datascript.query.Context.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__4439__auto__,k__4440__auto__){\nvar self__ = this;\nvar this__4439__auto____$1 = this;\nreturn this__4439__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__4440__auto__,null);\n}));\n\n(datascript.query.Context.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__4441__auto__,k25097,else__4442__auto__){\nvar self__ = this;\nvar this__4441__auto____$1 = this;\nvar G__25101 = k25097;\nvar G__25101__$1 = (((G__25101 instanceof cljs.core.Keyword))?G__25101.fqn:null);\nswitch (G__25101__$1) {\ncase \"rels\":\nreturn self__.rels;\n\nbreak;\ncase \"sources\":\nreturn self__.sources;\n\nbreak;\ncase \"rules\":\nreturn self__.rules;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k25097,else__4442__auto__);\n\n}\n}));\n\n(datascript.query.Context.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__4458__auto__,f__4459__auto__,init__4460__auto__){\nvar self__ = this;\nvar this__4458__auto____$1 = this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__4461__auto__,p__25102){\nvar vec__25103 = p__25102;\nvar k__4462__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25103,(0),null);\nvar v__4463__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25103,(1),null);\nreturn (f__4459__auto__.cljs$core$IFn$_invoke$arity$3 ? f__4459__auto__.cljs$core$IFn$_invoke$arity$3(ret__4461__auto__,k__4462__auto__,v__4463__auto__) : f__4459__auto__.call(null,ret__4461__auto__,k__4462__auto__,v__4463__auto__));\n}),init__4460__auto__,this__4458__auto____$1);\n}));\n\n(datascript.query.Context.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__4453__auto__,writer__4454__auto__,opts__4455__auto__){\nvar self__ = this;\nvar this__4453__auto____$1 = this;\nvar pr_pair__4456__auto__ = (function (keyval__4457__auto__){\nreturn cljs.core.pr_sequential_writer(writer__4454__auto__,cljs.core.pr_writer,\"\",\" \",\"\",opts__4455__auto__,keyval__4457__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__4454__auto__,pr_pair__4456__auto__,\"#datascript.query.Context{\",\", \",\"}\",opts__4455__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),self__.rels],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),self__.sources],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),self__.rules],null))], null),self__.__extmap));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__25096){\nvar self__ = this;\nvar G__25096__$1 = this;\nreturn (new cljs.core.RecordIter((0),G__25096__$1,3,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__4437__auto__){\nvar self__ = this;\nvar this__4437__auto____$1 = this;\nreturn self__.__meta;\n}));\n\n(datascript.query.Context.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__4434__auto__){\nvar self__ = this;\nvar this__4434__auto____$1 = this;\nreturn (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(datascript.query.Context.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__4443__auto__){\nvar self__ = this;\nvar this__4443__auto____$1 = this;\nreturn (3 + cljs.core.count(self__.__extmap));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__4435__auto__){\nvar self__ = this;\nvar this__4435__auto____$1 = this;\nvar h__4297__auto__ = self__.__hash;\nif((!((h__4297__auto__ == null)))){\nreturn h__4297__auto__;\n} else {\nvar h__4297__auto____$1 = (function (coll__4436__auto__){\nreturn (1014232958 ^ cljs.core.hash_unordered_coll(coll__4436__auto__));\n})(this__4435__auto____$1);\n(self__.__hash = h__4297__auto____$1);\n\nreturn h__4297__auto____$1;\n}\n}));\n\n(datascript.query.Context.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this25098,other25099){\nvar self__ = this;\nvar this25098__$1 = this;\nreturn (((!((other25099 == null)))) && ((this25098__$1.constructor === other25099.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25098__$1.rels,other25099.rels)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25098__$1.sources,other25099.sources)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25098__$1.rules,other25099.rules)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25098__$1.__extmap,other25099.__extmap)));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__4448__auto__,k__4449__auto__){\nvar self__ = this;\nvar this__4448__auto____$1 = this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),null,new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),null,new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),null], null), null),k__4449__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__4448__auto____$1),self__.__meta),k__4449__auto__);\n} else {\nreturn (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__4449__auto__)),null));\n}\n}));\n\n(datascript.query.Context.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__4446__auto__,k__4447__auto__,G__25096){\nvar self__ = this;\nvar this__4446__auto____$1 = this;\nvar pred__25107 = cljs.core.keyword_identical_QMARK_;\nvar expr__25108 = k__4447__auto__;\nif(cljs.core.truth_((pred__25107.cljs$core$IFn$_invoke$arity$2 ? pred__25107.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),expr__25108) : pred__25107.call(null,new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),expr__25108)))){\nreturn (new datascript.query.Context(G__25096,self__.sources,self__.rules,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__25107.cljs$core$IFn$_invoke$arity$2 ? pred__25107.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),expr__25108) : pred__25107.call(null,new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),expr__25108)))){\nreturn (new datascript.query.Context(self__.rels,G__25096,self__.rules,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__25107.cljs$core$IFn$_invoke$arity$2 ? pred__25107.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),expr__25108) : pred__25107.call(null,new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),expr__25108)))){\nreturn (new datascript.query.Context(self__.rels,self__.sources,G__25096,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__4447__auto__,G__25096),null));\n}\n}\n}\n}));\n\n(datascript.query.Context.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__4451__auto__){\nvar self__ = this;\nvar this__4451__auto____$1 = this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),self__.rels,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),self__.sources,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),self__.rules,null))], null),self__.__extmap));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__4438__auto__,G__25096){\nvar self__ = this;\nvar this__4438__auto____$1 = this;\nreturn (new datascript.query.Context(self__.rels,self__.sources,self__.rules,G__25096,self__.__extmap,self__.__hash));\n}));\n\n(datascript.query.Context.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__4444__auto__,entry__4445__auto__){\nvar self__ = this;\nvar this__4444__auto____$1 = this;\nif(cljs.core.vector_QMARK_(entry__4445__auto__)){\nreturn this__4444__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__4445__auto__,(0)),cljs.core._nth(entry__4445__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__4444__auto____$1,entry__4445__auto__);\n}\n}));\n\n(datascript.query.Context.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"rels\",\"rels\",-884248584,null),new cljs.core.Symbol(null,\"sources\",\"sources\",1319365103,null),new cljs.core.Symbol(null,\"rules\",\"rules\",-1455523403,null)], null);\n}));\n\n(datascript.query.Context.cljs$lang$type = true);\n\n(datascript.query.Context.cljs$lang$ctorPrSeq = (function (this__4482__auto__){\nreturn (new cljs.core.List(null,\"datascript.query/Context\",null,(1),null));\n}));\n\n(datascript.query.Context.cljs$lang$ctorPrWriter = (function (this__4482__auto__,writer__4483__auto__){\nreturn cljs.core._write(writer__4483__auto__,\"datascript.query/Context\");\n}));\n\n/**\n * Positional factory function for datascript.query/Context.\n */\ndatascript.query.__GT_Context = (function datascript$query$__GT_Context(rels,sources,rules){\nreturn (new datascript.query.Context(rels,sources,rules,null,null,null));\n});\n\n/**\n * Factory function for datascript.query/Context, taking a map of keywords to field values.\n */\ndatascript.query.map__GT_Context = (function datascript$query$map__GT_Context(G__25100){\nvar extmap__4478__auto__ = (function (){var G__25111 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__25100,new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366)], 0));\nif(cljs.core.record_QMARK_(G__25100)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__25111);\n} else {\nreturn G__25111;\n}\n})();\nreturn (new datascript.query.Context(new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185).cljs$core$IFn$_invoke$arity$1(G__25100),new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424).cljs$core$IFn$_invoke$arity$1(G__25100),new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366).cljs$core$IFn$_invoke$arity$1(G__25100),null,cljs.core.not_empty(extmap__4478__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ndatascript.query.Relation = (function (attrs,tuples,__meta,__extmap,__hash){\nthis.attrs = attrs;\nthis.tuples = tuples;\nthis.__meta = __meta;\nthis.__extmap = __extmap;\nthis.__hash = __hash;\nthis.cljs$lang$protocol_mask$partition0$ = 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ = 139264;\n});\n(datascript.query.Relation.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__4439__auto__,k__4440__auto__){\nvar self__ = this;\nvar this__4439__auto____$1 = this;\nreturn this__4439__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__4440__auto__,null);\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__4441__auto__,k25113,else__4442__auto__){\nvar self__ = this;\nvar this__4441__auto____$1 = this;\nvar G__25117 = k25113;\nvar G__25117__$1 = (((G__25117 instanceof cljs.core.Keyword))?G__25117.fqn:null);\nswitch (G__25117__$1) {\ncase \"attrs\":\nreturn self__.attrs;\n\nbreak;\ncase \"tuples\":\nreturn self__.tuples;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k25113,else__4442__auto__);\n\n}\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__4458__auto__,f__4459__auto__,init__4460__auto__){\nvar self__ = this;\nvar this__4458__auto____$1 = this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__4461__auto__,p__25118){\nvar vec__25119 = p__25118;\nvar k__4462__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25119,(0),null);\nvar v__4463__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25119,(1),null);\nreturn (f__4459__auto__.cljs$core$IFn$_invoke$arity$3 ? f__4459__auto__.cljs$core$IFn$_invoke$arity$3(ret__4461__auto__,k__4462__auto__,v__4463__auto__) : f__4459__auto__.call(null,ret__4461__auto__,k__4462__auto__,v__4463__auto__));\n}),init__4460__auto__,this__4458__auto____$1);\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__4453__auto__,writer__4454__auto__,opts__4455__auto__){\nvar self__ = this;\nvar this__4453__auto____$1 = this;\nvar pr_pair__4456__auto__ = (function (keyval__4457__auto__){\nreturn cljs.core.pr_sequential_writer(writer__4454__auto__,cljs.core.pr_writer,\"\",\" \",\"\",opts__4455__auto__,keyval__4457__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__4454__auto__,pr_pair__4456__auto__,\"#datascript.query.Relation{\",\", \",\"}\",opts__4455__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),self__.attrs],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),self__.tuples],null))], null),self__.__extmap));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__25112){\nvar self__ = this;\nvar G__25112__$1 = this;\nreturn (new cljs.core.RecordIter((0),G__25112__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__4437__auto__){\nvar self__ = this;\nvar this__4437__auto____$1 = this;\nreturn self__.__meta;\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__4434__auto__){\nvar self__ = this;\nvar this__4434__auto____$1 = this;\nreturn (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__4443__auto__){\nvar self__ = this;\nvar this__4443__auto____$1 = this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__4435__auto__){\nvar self__ = this;\nvar this__4435__auto____$1 = this;\nvar h__4297__auto__ = self__.__hash;\nif((!((h__4297__auto__ == null)))){\nreturn h__4297__auto__;\n} else {\nvar h__4297__auto____$1 = (function (coll__4436__auto__){\nreturn (1107093117 ^ cljs.core.hash_unordered_coll(coll__4436__auto__));\n})(this__4435__auto____$1);\n(self__.__hash = h__4297__auto____$1);\n\nreturn h__4297__auto____$1;\n}\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this25114,other25115){\nvar self__ = this;\nvar this25114__$1 = this;\nreturn (((!((other25115 == null)))) && ((this25114__$1.constructor === other25115.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25114__$1.attrs,other25115.attrs)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25114__$1.tuples,other25115.tuples)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25114__$1.__extmap,other25115.__extmap)));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__4448__auto__,k__4449__auto__){\nvar self__ = this;\nvar this__4448__auto____$1 = this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),null,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),null], null), null),k__4449__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__4448__auto____$1),self__.__meta),k__4449__auto__);\n} else {\nreturn (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__4449__auto__)),null));\n}\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__4446__auto__,k__4447__auto__,G__25112){\nvar self__ = this;\nvar this__4446__auto____$1 = this;\nvar pred__25123 = cljs.core.keyword_identical_QMARK_;\nvar expr__25124 = k__4447__auto__;\nif(cljs.core.truth_((pred__25123.cljs$core$IFn$_invoke$arity$2 ? pred__25123.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),expr__25124) : pred__25123.call(null,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),expr__25124)))){\nreturn (new datascript.query.Relation(G__25112,self__.tuples,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__25123.cljs$core$IFn$_invoke$arity$2 ? pred__25123.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),expr__25124) : pred__25123.call(null,new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),expr__25124)))){\nreturn (new datascript.query.Relation(self__.attrs,G__25112,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__4447__auto__,G__25112),null));\n}\n}\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__4451__auto__){\nvar self__ = this;\nvar this__4451__auto____$1 = this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),self__.attrs,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),self__.tuples,null))], null),self__.__extmap));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__4438__auto__,G__25112){\nvar self__ = this;\nvar this__4438__auto____$1 = this;\nreturn (new datascript.query.Relation(self__.attrs,self__.tuples,G__25112,self__.__extmap,self__.__hash));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__4444__auto__,entry__4445__auto__){\nvar self__ = this;\nvar this__4444__auto____$1 = this;\nif(cljs.core.vector_QMARK_(entry__4445__auto__)){\nreturn this__4444__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__4445__auto__,(0)),cljs.core._nth(entry__4445__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__4444__auto____$1,entry__4445__auto__);\n}\n}));\n\n(datascript.query.Relation.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"attrs\",\"attrs\",-450137186,null),new cljs.core.Symbol(null,\"tuples\",\"tuples\",964498888,null)], null);\n}));\n\n(datascript.query.Relation.cljs$lang$type = true);\n\n(datascript.query.Relation.cljs$lang$ctorPrSeq = (function (this__4482__auto__){\nreturn (new cljs.core.List(null,\"datascript.query/Relation\",null,(1),null));\n}));\n\n(datascript.query.Relation.cljs$lang$ctorPrWriter = (function (this__4482__auto__,writer__4483__auto__){\nreturn cljs.core._write(writer__4483__auto__,\"datascript.query/Relation\");\n}));\n\n/**\n * Positional factory function for datascript.query/Relation.\n */\ndatascript.query.__GT_Relation = (function datascript$query$__GT_Relation(attrs,tuples){\nreturn (new datascript.query.Relation(attrs,tuples,null,null,null));\n});\n\n/**\n * Factory function for datascript.query/Relation, taking a map of keywords to field values.\n */\ndatascript.query.map__GT_Relation = (function datascript$query$map__GT_Relation(G__25116){\nvar extmap__4478__auto__ = (function (){var G__25126 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__25116,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639)], 0));\nif(cljs.core.record_QMARK_(G__25116)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__25126);\n} else {\nreturn G__25126;\n}\n})();\nreturn (new datascript.query.Relation(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(G__25116),new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639).cljs$core$IFn$_invoke$arity$1(G__25116),null,cljs.core.not_empty(extmap__4478__auto__),null));\n});\n\ndatascript.query.single = (function datascript$query$single(coll){\n\nreturn cljs.core.first(coll);\n});\ndatascript.query.intersect_keys = (function datascript$query$intersect_keys(attrs1,attrs2){\nreturn clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(attrs1)),cljs.core.set(cljs.core.keys(attrs2)));\n});\ndatascript.query.concatv = (function datascript$query$concatv(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25503 = arguments.length;\nvar i__4790__auto___25504 = (0);\nwhile(true){\nif((i__4790__auto___25504 < len__4789__auto___25503)){\nargs__4795__auto__.push((arguments[i__4790__auto___25504]));\n\nvar G__25505 = (i__4790__auto___25504 + (1));\ni__4790__auto___25504 = G__25505;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn datascript.query.concatv.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(datascript.query.concatv.cljs$core$IFn$_invoke$arity$variadic = (function (xs){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.cat,xs);\n}));\n\n(datascript.query.concatv.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(datascript.query.concatv.cljs$lang$applyTo = (function (seq25128){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25128));\n}));\n\ndatascript.query.zip = (function datascript$query$zip(var_args){\nvar G__25133 = arguments.length;\nswitch (G__25133) {\ncase 2:\nreturn datascript.query.zip.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___25508 = arguments.length;\nvar i__4790__auto___25509 = (0);\nwhile(true){\nif((i__4790__auto___25509 < len__4789__auto___25508)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___25509]));\n\nvar G__25510 = (i__4790__auto___25509 + (1));\ni__4790__auto___25509 = G__25510;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((2)),(0),null));\nreturn datascript.query.zip.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4811__auto__);\n\n}\n});\n\n(datascript.query.zip.cljs$core$IFn$_invoke$arity$2 = (function (a,b){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,a,b);\n}));\n\n(datascript.query.zip.cljs$core$IFn$_invoke$arity$variadic = (function (a,b,rest){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(cljs.core.mapv,cljs.core.vector,a,b,rest);\n}));\n\n/** @this {Function} */\n(datascript.query.zip.cljs$lang$applyTo = (function (seq25130){\nvar G__25131 = cljs.core.first(seq25130);\nvar seq25130__$1 = cljs.core.next(seq25130);\nvar G__25132 = cljs.core.first(seq25130__$1);\nvar seq25130__$2 = cljs.core.next(seq25130__$1);\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25131,G__25132,seq25130__$2);\n}));\n\n(datascript.query.zip.cljs$lang$maxFixedArity = (2));\n\ndatascript.query.same_keys_QMARK_ = (function datascript$query$same_keys_QMARK_(a,b){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(a),cljs.core.count(b))) && (cljs.core.every_QMARK_((function (p1__25134_SHARP_){\nreturn cljs.core.contains_QMARK_(b,p1__25134_SHARP_);\n}),cljs.core.keys(a))) && (cljs.core.every_QMARK_((function (p1__25135_SHARP_){\nreturn cljs.core.contains_QMARK_(b,p1__25135_SHARP_);\n}),cljs.core.keys(a))));\n});\ndatascript.query.looks_like_QMARK_ = (function datascript$query$looks_like_QMARK_(pattern,form){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\"_\",\"_\",-1201019570,null),pattern)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"*\",\"*\",345799209,null)], null),pattern)){\nreturn cljs.core.sequential_QMARK_(form);\n} else {\nif((pattern instanceof cljs.core.Symbol)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(form,pattern);\n} else {\nif(cljs.core.sequential_QMARK_(pattern)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.last(pattern),new cljs.core.Symbol(null,\"*\",\"*\",345799209,null))){\nreturn ((cljs.core.sequential_QMARK_(form)) && (cljs.core.every_QMARK_((function (p__25141){\nvar vec__25142 = p__25141;\nvar pattern_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25142,(0),null);\nvar form_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25142,(1),null);\nreturn (datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2 ? datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2(pattern_el,form_el) : datascript.query.looks_like_QMARK_.call(null,pattern_el,form_el));\n}),cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,cljs.core.butlast(pattern),form))));\n} else {\nreturn ((cljs.core.sequential_QMARK_(form)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(form),cljs.core.count(pattern))) && (cljs.core.every_QMARK_((function (p__25149){\nvar vec__25150 = p__25149;\nvar pattern_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25150,(0),null);\nvar form_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25150,(1),null);\nreturn (datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2 ? datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2(pattern_el,form_el) : datascript.query.looks_like_QMARK_.call(null,pattern_el,form_el));\n}),cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,pattern,form))));\n}\n} else {\nreturn (pattern.cljs$core$IFn$_invoke$arity$1 ? pattern.cljs$core$IFn$_invoke$arity$1(form) : pattern.call(null,form));\n\n}\n}\n}\n}\n});\ndatascript.query.source_QMARK_ = (function datascript$query$source_QMARK_(sym){\nreturn (((sym instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\"$\",cljs.core.first(cljs.core.name(sym)))));\n});\ndatascript.query.free_var_QMARK_ = (function datascript$query$free_var_QMARK_(sym){\nreturn (((sym instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\"?\",cljs.core.first(cljs.core.name(sym)))));\n});\ndatascript.query.attr_QMARK_ = (function datascript$query$attr_QMARK_(form){\nreturn (((form instanceof cljs.core.Keyword)) || (typeof form === 'string'));\n});\ndatascript.query.lookup_ref_QMARK_ = (function datascript$query$lookup_ref_QMARK_(form){\nreturn datascript.query.looks_like_QMARK_(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datascript.query.attr_QMARK_,new cljs.core.Symbol(null,\"_\",\"_\",-1201019570,null)], null),form);\n});\ndatascript.query.join_tuples = (function datascript$query$join_tuples(t1,idxs1,t2,idxs2){\nvar l1 = idxs1.length;\nvar l2 = idxs2.length;\nvar res = me.tonsky.persistent_sorted_set.arrays.make_array((l1 + l2));\nvar n__4666__auto___25521 = l1;\nvar i_25522 = (0);\nwhile(true){\nif((i_25522 < n__4666__auto___25521)){\n(res[i_25522] = (t1[(idxs1[i_25522])]));\n\nvar G__25523 = (i_25522 + (1));\ni_25522 = G__25523;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar n__4666__auto___25528 = l2;\nvar i_25529 = (0);\nwhile(true){\nif((i_25529 < n__4666__auto___25528)){\n(res[(l1 + i_25529)] = (t2[(idxs2[i_25529])]));\n\nvar G__25531 = (i_25529 + (1));\ni_25529 = G__25531;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn res;\n});\ndatascript.query.sum_rel = (function datascript$query$sum_rel(a,b){\nvar map__25154 = a;\nvar map__25154__$1 = (((((!((map__25154 == null))))?(((((map__25154.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25154.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__25154):map__25154);\nvar attrs_a = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25154__$1,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713));\nvar tuples_a = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25154__$1,new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639));\nvar map__25155 = b;\nvar map__25155__$1 = (((((!((map__25155 == null))))?(((((map__25155.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25155.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__25155):map__25155);\nvar attrs_b = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25155__$1,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713));\nvar tuples_b = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25155__$1,new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(attrs_a,attrs_b)){\nreturn (new datascript.query.Relation(attrs_a,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(tuples_a),tuples_b),null,null,null));\n} else {\nif((!(datascript.query.same_keys_QMARK_(attrs_a,attrs_b)))){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\"Can\\u2019t sum relations with different attrs: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([attrs_a], 0)),\" and \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([attrs_b], 0))].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"error\",\"error\",-978969032),new cljs.core.Keyword(\"query\",\"where\",\"query/where\",-1935159429)], null));\n} else {\nif(cljs.core.every_QMARK_(cljs.core.number_QMARK_,cljs.core.vals(attrs_a))){\nvar idxb__GT_idxa = cljs.core.vec((function (){var iter__4582__auto__ = (function datascript$query$sum_rel_$_iter__25158(s__25159){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__25159__$1 = s__25159;\nwhile(true){\nvar temp__5735__auto__ = cljs.core.seq(s__25159__$1);\nif(temp__5735__auto__){\nvar s__25159__$2 = temp__5735__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__25159__$2)){\nvar c__4580__auto__ = cljs.core.chunk_first(s__25159__$2);\nvar size__4581__auto__ = cljs.core.count(c__4580__auto__);\nvar b__25161 = cljs.core.chunk_buffer(size__4581__auto__);\nif((function (){var i__25160 = (0);\nwhile(true){\nif((i__25160 < size__4581__auto__)){\nvar vec__25162 = cljs.core._nth(c__4580__auto__,i__25160);\nvar sym = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25162,(0),null);\nvar idx_b = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25162,(1),null);\ncljs.core.chunk_append(b__25161,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [idx_b,(attrs_a.cljs$core$IFn$_invoke$arity$1 ? attrs_a.cljs$core$IFn$_invoke$arity$1(sym) : attrs_a.call(null,sym))], null));\n\nvar G__25548 = (i__25160 + (1));\ni__25160 = G__25548;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__25161),datascript$query$sum_rel_$_iter__25158(cljs.core.chunk_rest(s__25159__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__25161),null);\n}\n} else {\nvar vec__25166 = cljs.core.first(s__25159__$2);\nvar sym = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25166,(0),null);\nvar idx_b = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25166,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [idx_b,(attrs_a.cljs$core$IFn$_invoke$arity$1 ? attrs_a.cljs$core$IFn$_invoke$arity$1(sym) : attrs_a.call(null,sym))], null),datascript$query$sum_rel_$_iter__25158(cljs.core.rest(s__25159__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__4582__auto__(attrs_b);\n})());\nvar tlen = (cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.vals(attrs_a)) + (1));\nvar tuples_SINGLEQUOTE_ = cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,tuple_b){\nvar tuple_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.arrays.make_array(tlen);\nvar seq__25169_25553 = cljs.core.seq(idxb__GT_idxa);\nvar chunk__25170_25554 = null;\nvar count__25171_25555 = (0);\nvar i__25172_25556 = (0);\nwhile(true){\nif((i__25172_25556 < count__25171_25555)){\nvar vec__25179_25557 = chunk__25170_25554.cljs$core$IIndexed$_nth$arity$2(null,i__25172_25556);\nvar idx_b_25558 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25179_25557,(0),null);\nvar idx_a_25559 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25179_25557,(1),null);\n(tuple_SINGLEQUOTE_[idx_a_25559] = (tuple_b[idx_b_25558]));\n\n\nvar G__25563 = seq__25169_25553;\nvar G__25564 = chunk__25170_25554;\nvar G__25565 = count__25171_25555;\nvar G__25566 = (i__25172_25556 + (1));\nseq__25169_25553 = G__25563;\nchunk__25170_25554 = G__25564;\ncount__25171_25555 = G__25565;\ni__25172_25556 = G__25566;\ncontinue;\n} else {\nvar temp__5735__auto___25567 = cljs.core.seq(seq__25169_25553);\nif(temp__5735__auto___25567){\nvar seq__25169_25568__$1 = temp__5735__auto___25567;\nif(cljs.core.chunked_seq_QMARK_(seq__25169_25568__$1)){\nvar c__4609__auto___25570 = cljs.core.chunk_first(seq__25169_25568__$1);\nvar G__25571 = cljs.core.chunk_rest(seq__25169_25568__$1);\nvar G__25572 = c__4609__auto___25570;\nvar G__25573 = cljs.core.count(c__4609__auto___25570);\nvar G__25574 = (0);\nseq__25169_25553 = G__25571;\nchunk__25170_25554 = G__25572;\ncount__25171_25555 = G__25573;\ni__25172_25556 = G__25574;\ncontinue;\n} else {\nvar vec__25182_25575 = cljs.core.first(seq__25169_25568__$1);\nvar idx_b_25576 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25182_25575,(0),null);\nvar idx_a_25577 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25182_25575,(1),null);\n(tuple_SINGLEQUOTE_[idx_a_25577] = (tuple_b[idx_b_25576]));\n\n\nvar G__25579 = cljs.core.next(seq__25169_25568__$1);\nvar G__25580 = null;\nvar G__25581 = (0);\nvar G__25582 = (0);\nseq__25169_25553 = G__25579;\nchunk__25170_25554 = G__25580;\ncount__25171_25555 = G__25581;\ni__25172_25556 = G__25582;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,tuple_SINGLEQUOTE_);\n}),cljs.core.transient$(cljs.core.vec(tuples_a)),tuples_b));\nreturn (new datascript.query.Relation(attrs_a,tuples_SINGLEQUOTE_,null,null,null));\n} else {\nvar all_attrs = cljs.core.zipmap(cljs.core.keys(cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([attrs_a,attrs_b], 0))),cljs.core.range.cljs$core$IFn$_invoke$arity$0());\nvar G__25185 = (function (){var G__25187 = (new datascript.query.Relation(all_attrs,cljs.core.PersistentVector.EMPTY,null,null,null));\nvar G__25188 = a;\nreturn (datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2 ? datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2(G__25187,G__25188) : datascript.query.sum_rel.call(null,G__25187,G__25188));\n})();\nvar G__25186 = b;\nreturn (datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2 ? datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2(G__25185,G__25186) : datascript.query.sum_rel.call(null,G__25185,G__25186));\n\n}\n}\n}\n});\ndatascript.query.prod_rel = (function datascript$query$prod_rel(var_args){\nvar G__25190 = arguments.length;\nswitch (G__25190) {\ncase 0:\nreturn datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 2:\nreturn datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$0 = (function (){\nreturn (new datascript.query.Relation(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [me.tonsky.persistent_sorted_set.arrays.make_array((0))], null),null,null,null));\n}));\n\n(datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$2 = (function (rel1,rel2){\nvar attrs1 = cljs.core.keys(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1));\nvar attrs2 = cljs.core.keys(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2));\nvar idxs1 = cljs.core.to_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1),attrs1));\nvar idxs2 = cljs.core.to_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2),attrs2));\nreturn (new datascript.query.Relation(cljs.core.zipmap(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(attrs1,attrs2),cljs.core.range.cljs$core$IFn$_invoke$arity$0()),cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,t1){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc__$1,t2){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc__$1,datascript.query.join_tuples(t1,idxs1,t2,idxs2));\n}),acc,new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639).cljs$core$IFn$_invoke$arity$1(rel2));\n}),cljs.core.transient$(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639).cljs$core$IFn$_invoke$arity$1(rel1))),null,null,null));\n}));\n\n(datascript.query.prod_rel.cljs$lang$maxFixedArity = 2);\n\ndatascript.query._differ_QMARK_ = (function datascript$query$_differ_QMARK_(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25594 = arguments.length;\nvar i__4790__auto___25595 = (0);\nwhile(true){\nif((i__4790__auto___25595 < len__4789__auto___25594)){\nargs__4795__auto__.push((arguments[i__4790__auto___25595]));\n\nvar G__25596 = (i__4790__auto___25595 + (1));\ni__4790__auto___25595 = G__25596;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn datascript.query._differ_QMARK_.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(datascript.query._differ_QMARK_.cljs$core$IFn$_invoke$arity$variadic = (function (xs){\nvar l = cljs.core.count(xs);\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.take.cljs$core$IFn$_invoke$arity$2((l / (2)),xs),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((l / (2)),xs));\n}));\n\n(datascript.query._differ_QMARK_.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(datascript.query._differ_QMARK_.cljs$lang$applyTo = (function (seq25192){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25192));\n}));\n\ndatascript.query._get_else = (function datascript$query$_get_else(db,e,a,else_val){\nif((else_val == null)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\"get-else: nil default value is not supported\",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"error\",\"error\",-978969032),new cljs.core.Keyword(\"query\",\"where\",\"query/where\",-1935159429)], null));\n} else {\n}\n\nvar temp__5737__auto__ = cljs.core.first(datascript.db._search(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a], null)));\nif((temp__5737__auto__ == null)){\nreturn else_val;\n} else {\nvar datom = temp__5737__auto__;\nreturn new cljs.core.Keyword(null,\"v\",\"v\",21465059).cljs$core$IFn$_invoke$arity$1(datom);\n}\n});\ndatascript.query._get_some = (function datascript$query$_get_some(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25609 = arguments.length;\nvar i__4790__auto___25610 = (0);\nwhile(true){\nif((i__4790__auto___25610 < len__4789__auto___25609)){\nargs__4795__auto__.push((arguments[i__4790__auto___25610]));\n\nvar G__25611 = (i__4790__auto___25610 + (1));\ni__4790__auto___25610 = G__25611;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((2) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((2)),(0),null)):null);\nreturn datascript.query._get_some.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4796__auto__);\n});\n\n(datascript.query._get_some.cljs$core$IFn$_invoke$arity$variadic = (function (db,e,as){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,a){\nvar temp__5739__auto__ = cljs.core.first(datascript.db._search(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a], null)));\nif((temp__5739__auto__ == null)){\nreturn null;\n} else {\nvar datom = temp__5739__auto__;\nreturn cljs.core.reduced(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"a\",\"a\",-2123407586).cljs$core$IFn$_invoke$arity$1(datom),new cljs.core.Keyword(null,\"v\",\"v\",21465059).cljs$core$IFn$_invoke$arity$1(datom)], null));\n}\n}),null,as);\n}));\n\n(datascript.query._get_some.cljs$lang$maxFixedArity = (2));\n\n/** @this {Function} */\n(datascript.query._get_some.cljs$lang$applyTo = (function (seq25193){\nvar G__25194 = cljs.core.first(seq25193);\nvar seq25193__$1 = cljs.core.next(seq25193);\nvar G__25195 = cljs.core.first(seq25193__$1);\nvar seq25193__$2 = cljs.core.next(seq25193__$1);\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25194,G__25195,seq25193__$2);\n}));\n\ndatascript.query._missing_QMARK_ = (function datascript$query$_missing_QMARK_(db,e,a){\nreturn (cljs.core.get.cljs$core$IFn$_invoke$arity$2(datascript.impl.entity.entity(db,e),a) == null);\n});\ndatascript.query.and_fn = (function datascript$query$and_fn(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25616 = arguments.length;\nvar i__4790__auto___25617 = (0);\nwhile(true){\nif((i__4790__auto___25617 < len__4789__auto___25616)){\nargs__4795__auto__.push((arguments[i__4790__auto___25617]));\n\nvar G__25618 = (i__4790__auto___25617 + (1));\ni__4790__auto___25617 = G__25618;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn datascript.query.and_fn.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(datascript.query.and_fn.cljs$core$IFn$_invoke$arity$variadic = (function (args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (a,b){\nif(cljs.core.truth_(b)){\nreturn b;\n} else {\nreturn cljs.core.reduced(b);\n}\n}),true,args);\n}));\n\n(datascript.query.and_fn.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(datascript.query.and_fn.cljs$lang$applyTo = (function (seq25196){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25196));\n}));\n\ndatascript.query.or_fn = (function datascript$query$or_fn(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25622 = arguments.length;\nvar i__4790__auto___25623 = (0);\nwhile(true){\nif((i__4790__auto___25623 < len__4789__auto___25622)){\nargs__4795__auto__.push((arguments[i__4790__auto___25623]));\n\nvar G__25627 = (i__4790__auto___25623 + (1));\ni__4790__auto___25623 = G__25627;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn datascript.query.or_fn.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(datascript.query.or_fn.cljs$core$IFn$_invoke$arity$variadic = (function (args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (a,b){\nif(cljs.core.truth_(b)){\nreturn cljs.core.reduced(b);\n} else {\nreturn b;\n}\n}),null,args);\n}));\n\n(datascript.query.or_fn.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(datascript.query.or_fn.cljs$lang$applyTo = (function (seq25198){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25198));\n}));\n\ndatascript.query.built_ins = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,\"true?\",\"true?\",-1600332395,null),new cljs.core.Symbol(null,\"and\",\"and\",668631710,null),new cljs.core.Symbol(null,\"odd?\",\"odd?\",-1458588199,null),new cljs.core.Symbol(null,\"get-else\",\"get-else\",1312024065,null),new cljs.core.Symbol(null,\">=\",\">=\",1016916022,null),new cljs.core.Symbol(null,\"print-str\",\"print-str\",-699700354,null),new cljs.core.Symbol(null,\">\",\">\",1085014381,null),new cljs.core.Symbol(null,\"count\",\"count\",-514511684,null),new cljs.core.Symbol(null,\"get-some\",\"get-some\",409442058,null),new cljs.core.Symbol(null,\"nil?\",\"nil?\",1612038930,null),new cljs.core.Symbol(null,\"inc\",\"inc\",324505433,null),new cljs.core.Symbol(null,\"/\",\"/\",-1371932971,null),new cljs.core.Symbol(null,\"quot\",\"quot\",-1125214196,null),new cljs.core.Symbol(null,\"false?\",\"false?\",-1522377573,null),new cljs.core.Symbol(null,\"not\",\"not\",1044554643,null),new cljs.core.Symbol(null,\"identity\",\"identity\",-1007039734,null),new cljs.core.Symbol(null,\"-differ?\",\"-differ?\",1465687357,null),new cljs.core.Symbol(null,\"re-seq\",\"re-seq\",-2105554076,null),new cljs.core.Symbol(null,\"<=\",\"<=\",1244895369,null),new cljs.core.Symbol(\"clojure.string\",\"starts-with?\",\"clojure.string/starts-with?\",656256322,null),new cljs.core.Symbol(null,\"=\",\"=\",-1501502141,null),new cljs.core.Symbol(null,\"min\",\"min\",2085523049,null),new cljs.core.Symbol(null,\"+\",\"+\",-740910886,null),new cljs.core.Symbol(null,\"name\",\"name\",-810760592,null),new cljs.core.Symbol(null,\"missing?\",\"missing?\",-1710383910,null),new cljs.core.Symbol(null,\"ground\",\"ground\",-1460862835,null),new cljs.core.Symbol(null,\"rand-int\",\"rand-int\",-495012157,null),new cljs.core.Symbol(null,\"complement\",\"complement\",-913606051,null),new cljs.core.Symbol(null,\"==\",\"==\",-234118149,null),new cljs.core.Symbol(null,\"hash-map\",\"hash-map\",-439030950,null),new cljs.core.Symbol(null,\"compa