["^ ","~:output",["^ ","~:js","goog.provide('shadow.remote.runtime.obj_support');\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*/\nshadow.remote.runtime.obj_support.Reference = (function (obj,__meta,__extmap,__hash){\nthis.obj = obj;\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(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__4380__auto__,k__4381__auto__){\nvar self__ = this;\nvar this__4380__auto____$1 = this;\nreturn this__4380__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__4381__auto__,null);\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__4382__auto__,k45087,else__4383__auto__){\nvar self__ = this;\nvar this__4382__auto____$1 = this;\nvar G__45100 = k45087;\nvar G__45100__$1 = (((G__45100 instanceof cljs.core.Keyword))?G__45100.fqn:null);\nswitch (G__45100__$1) {\ncase \"obj\":\nreturn self__.obj;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k45087,else__4383__auto__);\n\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__4399__auto__,f__4400__auto__,init__4401__auto__){\nvar self__ = this;\nvar this__4399__auto____$1 = this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__4402__auto__,p__45102){\nvar vec__45103 = p__45102;\nvar k__4403__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45103,(0),null);\nvar v__4404__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45103,(1),null);\nreturn (f__4400__auto__.cljs$core$IFn$_invoke$arity$3 ? f__4400__auto__.cljs$core$IFn$_invoke$arity$3(ret__4402__auto__,k__4403__auto__,v__4404__auto__) : f__4400__auto__.call(null,ret__4402__auto__,k__4403__auto__,v__4404__auto__));\n}),init__4401__auto__,this__4399__auto____$1);\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__4394__auto__,writer__4395__auto__,opts__4396__auto__){\nvar self__ = this;\nvar this__4394__auto____$1 = this;\nvar pr_pair__4397__auto__ = (function (keyval__4398__auto__){\nreturn cljs.core.pr_sequential_writer(writer__4395__auto__,cljs.core.pr_writer,\"\",\" \",\"\",opts__4396__auto__,keyval__4398__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__4395__auto__,pr_pair__4397__auto__,\"#shadow.remote.runtime.obj-support.Reference{\",\", \",\"}\",opts__4396__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"obj\",\"obj\",981763962),self__.obj],null))], null),self__.__extmap));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__45086){\nvar self__ = this;\nvar G__45086__$1 = this;\nreturn (new cljs.core.RecordIter((0),G__45086__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"obj\",\"obj\",981763962)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__4378__auto__){\nvar self__ = this;\nvar this__4378__auto____$1 = this;\nreturn self__.__meta;\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__4375__auto__){\nvar self__ = this;\nvar this__4375__auto____$1 = this;\nreturn (new shadow.remote.runtime.obj_support.Reference(self__.obj,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__4384__auto__){\nvar self__ = this;\nvar this__4384__auto____$1 = this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__4376__auto__){\nvar self__ = this;\nvar this__4376__auto____$1 = this;\nvar h__4238__auto__ = self__.__hash;\nif((!((h__4238__auto__ == null)))){\nreturn h__4238__auto__;\n} else {\nvar h__4238__auto____$1 = (function (coll__4377__auto__){\nreturn (1775716890 ^ cljs.core.hash_unordered_coll(coll__4377__auto__));\n})(this__4376__auto____$1);\n(self__.__hash = h__4238__auto____$1);\n\nreturn h__4238__auto____$1;\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this45088,other45089){\nvar self__ = this;\nvar this45088__$1 = this;\nreturn (((!((other45089 == null)))) && ((this45088__$1.constructor === other45089.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this45088__$1.obj,other45089.obj)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this45088__$1.__extmap,other45089.__extmap)));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__4389__auto__,k__4390__auto__){\nvar self__ = this;\nvar this__4389__auto____$1 = this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"obj\",\"obj\",981763962),null], null), null),k__4390__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__4389__auto____$1),self__.__meta),k__4390__auto__);\n} else {\nreturn (new shadow.remote.runtime.obj_support.Reference(self__.obj,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__4390__auto__)),null));\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__4387__auto__,k__4388__auto__,G__45086){\nvar self__ = this;\nvar this__4387__auto____$1 = this;\nvar pred__45157 = cljs.core.keyword_identical_QMARK_;\nvar expr__45158 = k__4388__auto__;\nif(cljs.core.truth_((pred__45157.cljs$core$IFn$_invoke$arity$2 ? pred__45157.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"obj\",\"obj\",981763962),expr__45158) : pred__45157.call(null,new cljs.core.Keyword(null,\"obj\",\"obj\",981763962),expr__45158)))){\nreturn (new shadow.remote.runtime.obj_support.Reference(G__45086,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new shadow.remote.runtime.obj_support.Reference(self__.obj,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__4388__auto__,G__45086),null));\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__4392__auto__){\nvar self__ = this;\nvar this__4392__auto____$1 = this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"obj\",\"obj\",981763962),self__.obj,null))], null),self__.__extmap));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__4379__auto__,G__45086){\nvar self__ = this;\nvar this__4379__auto____$1 = this;\nreturn (new shadow.remote.runtime.obj_support.Reference(self__.obj,G__45086,self__.__extmap,self__.__hash));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__4385__auto__,entry__4386__auto__){\nvar self__ = this;\nvar this__4385__auto____$1 = this;\nif(cljs.core.vector_QMARK_(entry__4386__auto__)){\nreturn this__4385__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__4386__auto__,(0)),cljs.core._nth(entry__4386__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__4385__auto____$1,entry__4386__auto__);\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"obj\",\"obj\",-1672671807,null)], null);\n}));\n\n(shadow.remote.runtime.obj_support.Reference.cljs$lang$type = true);\n\n(shadow.remote.runtime.obj_support.Reference.cljs$lang$ctorPrSeq = (function (this__4423__auto__){\nreturn (new cljs.core.List(null,\"shadow.remote.runtime.obj-support/Reference\",null,(1),null));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.cljs$lang$ctorPrWriter = (function (this__4423__auto__,writer__4424__auto__){\nreturn cljs.core._write(writer__4424__auto__,\"shadow.remote.runtime.obj-support/Reference\");\n}));\n\n/**\n * Positional factory function for shadow.remote.runtime.obj-support/Reference.\n */\nshadow.remote.runtime.obj_support.__GT_Reference = (function shadow$remote$runtime$obj_support$__GT_Reference(obj){\nreturn (new shadow.remote.runtime.obj_support.Reference(obj,null,null,null));\n});\n\n/**\n * Factory function for shadow.remote.runtime.obj-support/Reference, taking a map of keywords to field values.\n */\nshadow.remote.runtime.obj_support.map__GT_Reference = (function shadow$remote$runtime$obj_support$map__GT_Reference(G__45092){\nvar extmap__4419__auto__ = (function (){var G__45172 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__45092,new cljs.core.Keyword(null,\"obj\",\"obj\",981763962));\nif(cljs.core.record_QMARK_(G__45092)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__45172);\n} else {\nreturn G__45172;\n}\n})();\nreturn (new shadow.remote.runtime.obj_support.Reference(new cljs.core.Keyword(null,\"obj\",\"obj\",981763962).cljs$core$IFn$_invoke$arity$1(G__45092),null,cljs.core.not_empty(extmap__4419__auto__),null));\n});\n\nshadow.remote.runtime.obj_support.obj_ref = (function shadow$remote$runtime$obj_support$obj_ref(obj){\nif((!((obj == null)))){\nreturn (new shadow.remote.runtime.obj_support.Reference(obj,null,null,null));\n} else {\nreturn null;\n}\n});\nshadow.remote.runtime.obj_support.obj_ref_QMARK_ = (function shadow$remote$runtime$obj_support$obj_ref_QMARK_(result){\nreturn (result instanceof shadow.remote.runtime.obj_support.Reference);\n});\nshadow.remote.runtime.obj_support.now = (function shadow$remote$runtime$obj_support$now(){\nreturn Date.now();\n});\nshadow.remote.runtime.obj_support.next_oid = (function shadow$remote$runtime$obj_support$next_oid(){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n});\nshadow.remote.runtime.obj_support.register_STAR_ = (function shadow$remote$runtime$obj_support$register_STAR_(state,oid,obj,obj_info){\nvar ts = shadow.remote.runtime.obj_support.now();\nvar obj_entry = new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),oid,new cljs.core.Keyword(null,\"obj\",\"obj\",981763962),obj,new cljs.core.Keyword(null,\"access-at\",\"access-at\",-1487162729),ts,new cljs.core.Keyword(null,\"obj-info\",\"obj-info\",-373842651),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(obj_info,new cljs.core.Keyword(null,\"added-at\",\"added-at\",-352499434),ts)], null);\nreturn cljs.core.assoc_in(state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),oid], null),obj_entry);\n});\nshadow.remote.runtime.obj_support.obj_type_string = (function shadow$remote$runtime$obj_support$obj_type_string(obj){\nif((obj == null)){\nreturn \"nil\";\n} else {\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(obj)], 0));\n}\n});\nif((typeof shadow !== 'undefined') && (typeof shadow.remote !== 'undefined') && (typeof shadow.remote.runtime !== 'undefined') && (typeof shadow.remote.runtime.obj_support !== 'undefined') && (typeof shadow.remote.runtime.obj_support.make_view !== 'undefined')){\n} else {\nshadow.remote.runtime.obj_support.make_view = (function (){var method_table__4619__auto__ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__4620__auto__ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__4621__auto__ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__4622__auto__ = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__4623__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\"hierarchy\",\"hierarchy\",-1053470341),(function (){var fexpr__45181 = cljs.core.get_global_hierarchy;\nreturn (fexpr__45181.cljs$core$IFn$_invoke$arity$0 ? fexpr__45181.cljs$core$IFn$_invoke$arity$0() : fexpr__45181.call(null));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\"shadow.remote.runtime.obj-support\",\"make-view\"),(function (state_ref,p__45182,entry){\nvar map__45183 = p__45182;\nvar map__45183__$1 = (((((!((map__45183 == null))))?(((((map__45183.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45183.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45183):map__45183);\nvar msg = map__45183__$1;\nvar view_type = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45183__$1,new cljs.core.Keyword(null,\"view-type\",\"view-type\",-1848894559));\nreturn view_type;\n}),new cljs.core.Keyword(null,\"default\",\"default\",-1987822328),hierarchy__4623__auto__,method_table__4619__auto__,prefer_table__4620__auto__,method_cache__4621__auto__,cached_hierarchy__4622__auto__));\n})();\n}\nshadow.remote.runtime.obj_support.default_max_print_size = (((1) * (1024)) * (1024));\nshadow.remote.runtime.obj_support.as_edn = (function shadow$remote$runtime$obj_support$as_edn(data,p__45186){\nvar map__45187 = p__45186;\nvar map__45187__$1 = (((((!((map__45187 == null))))?(((((map__45187.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45187.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45187):map__45187);\nvar msg = map__45187__$1;\nvar limit = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45187__$1,new cljs.core.Keyword(null,\"limit\",\"limit\",-1355822363),shadow.remote.runtime.obj_support.default_max_print_size);\nvar lw = shadow.remote.runtime.writer.limit_writer(limit);\ncljs.core.pr_writer(data,lw,cljs.core.pr_opts());\n\nreturn shadow.remote.runtime.writer.get_string(lw);\n});\nshadow.remote.runtime.obj_support.as_pprint = (function shadow$remote$runtime$obj_support$as_pprint(data,p__45190){\nvar map__45191 = p__45190;\nvar map__45191__$1 = (((((!((map__45191 == null))))?(((((map__45191.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45191.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45191):map__45191);\nvar msg = map__45191__$1;\nvar limit = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45191__$1,new cljs.core.Keyword(null,\"limit\",\"limit\",-1355822363),shadow.remote.runtime.obj_support.default_max_print_size);\nvar lw = shadow.remote.runtime.writer.limit_writer(limit);\ncljs.pprint.pprint.cljs$core$IFn$_invoke$arity$2(data,lw);\n\nreturn shadow.remote.runtime.writer.get_string(lw);\n});\nshadow.remote.runtime.obj_support.as_edn_limit = (function shadow$remote$runtime$obj_support$as_edn_limit(data,p__45194){\nvar map__45195 = p__45194;\nvar map__45195__$1 = (((((!((map__45195 == null))))?(((((map__45195.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45195.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45195):map__45195);\nvar msg = map__45195__$1;\nvar limit = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45195__$1,new cljs.core.Keyword(null,\"limit\",\"limit\",-1355822363));\nreturn shadow.remote.runtime.writer.pr_str_limit(data,limit);\n});\nshadow.remote.runtime.obj_support.as_str = (function shadow$remote$runtime$obj_support$as_str(data,msg){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(data);\n});\nshadow.remote.runtime.obj_support.attempt_to_sort = (function shadow$remote$runtime$obj_support$attempt_to_sort(desc,coll){\ntry{return cljs.core.assoc_in(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(desc,new cljs.core.Keyword(null,\"view-order\",\"view-order\",566761574),cljs.core.vec(cljs.core.sort.cljs$core$IFn$_invoke$arity$1(coll))),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"sorted\",\"sorted\",-896746253)], null),true);\n}catch (e45201){var e = e45201;\nreturn cljs.core.assoc_in(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(desc,new cljs.core.Keyword(null,\"view-order\",\"view-order\",566761574),cljs.core.vec(coll)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"sorted\",\"sorted\",-896746253)], null),false);\n}});\nshadow.remote.runtime.obj_support.browseable_kv = (function shadow$remote$runtime$obj_support$browseable_kv(p__45209){\nvar map__45210 = p__45209;\nvar map__45210__$1 = (((((!((map__45210 == null))))?(((((map__45210.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45210.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45210):map__45210);\nvar desc = map__45210__$1;\nvar view_order = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45210__$1,new cljs.core.Keyword(null,\"view-order\",\"view-order\",566761574));\nvar data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45210__$1,new cljs.core.Keyword(null,\"data\",\"data\",-232669377));\nreturn cljs.core.assoc_in(cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"nav\",\"nav\",719540477)], null),(function (p__45214){\nvar map__45216 = p__45214;\nvar map__45216__$1 = (((((!((map__45216 == null))))?(((((map__45216.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45216.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45216):map__45216);\nvar idx = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45216__$1,new cljs.core.Keyword(null,\"idx\",\"idx\",1053688473));\nvar key = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(view_order,idx);\nvar val = cljs.core.get.cljs$core$IFn$_invoke$arity$2(data,key);\nvar nav = clojure.datafy.nav(data,key,val);\nreturn shadow.remote.runtime.obj_support.obj_ref(nav);\n})),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"fragment\",\"fragment\",826775688)], null),(function (p__45221){\nvar map__45222 = p__45221;\nvar map__45222__$1 = (((((!((map__45222 == null))))?(((((map__45222.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45222.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45222):map__45222);\nvar msg = map__45222__$1;\nvar start = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45222__$1,new cljs.core.Keyword(null,\"start\",\"start\",-355208981));\nvar num = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45222__$1,new cljs.core.Keyword(null,\"num\",\"num\",1985240673));\nvar key_limit = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45222__$1,new cljs.core.Keyword(null,\"key-limit\",\"key-limit\",259239169),(100));\nvar val_limit = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45222__$1,new cljs.core.Keyword(null,\"val-limit\",\"val-limit\",1428666181),(100));\nvar end = (function (){var x__4217__auto__ = cljs.core.count(view_order);\nvar y__4218__auto__ = (start + num);\nreturn ((x__4217__auto__ < y__4218__auto__) ? x__4217__auto__ : y__4218__auto__);\n})();\nvar idxs = cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,end);\nvar fragment = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,idx){\nvar key = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(view_order,idx);\nvar val = cljs.core.get.cljs$core$IFn$_invoke$arity$2(data,key);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,idx,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"key\",\"key\",-1516042587),(function (){try{return shadow.remote.runtime.writer.pr_str_limit(key,key_limit);\n}catch (e45238){var e = e45238;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,\"... print failed ...\"], null);\n}})(),new cljs.core.Keyword(null,\"val\",\"val\",128701612),(function (){try{return shadow.remote.runtime.writer.pr_str_limit(val,val_limit);\n}catch (e45242){var e = e45242;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,\"... print failed ...\"], null);\n}})()], null));\n}),cljs.core.PersistentArrayMap.EMPTY,idxs);\nreturn fragment;\n}));\n});\nshadow.remote.runtime.obj_support.browseable_vec = (function shadow$remote$runtime$obj_support$browseable_vec(p__45253){\nvar map__45254 = p__45253;\nvar map__45254__$1 = (((((!((map__45254 == null))))?(((((map__45254.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45254.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45254):map__45254);\nvar desc = map__45254__$1;\nvar data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45254__$1,new cljs.core.Keyword(null,\"data\",\"data\",-232669377));\nreturn cljs.core.assoc_in(cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"nav\",\"nav\",719540477)], null),(function (p__45258){\nvar map__45259 = p__45258;\nvar map__45259__$1 = (((((!((map__45259 == null))))?(((((map__45259.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45259.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45259):map__45259);\nvar idx = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45259__$1,new cljs.core.Keyword(null,\"idx\",\"idx\",1053688473));\nvar val = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(data,idx);\nvar nav = clojure.datafy.nav(data,idx,val);\nreturn shadow.remote.runtime.obj_support.obj_ref(nav);\n})),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"fragment\",\"fragment\",826775688)], null),(function (p__45262){\nvar map__45263 = p__45262;\nvar map__45263__$1 = (((((!((map__45263 == null))))?(((((map__45263.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45263.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45263):map__45263);\nvar msg = map__45263__$1;\nvar start = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45263__$1,new cljs.core.Keyword(null,\"start\",\"start\",-355208981));\nvar num = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45263__$1,new cljs.core.Keyword(null,\"num\",\"num\",1985240673));\nvar val_limit = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45263__$1,new cljs.core.Keyword(null,\"val-limit\",\"val-limit\",1428666181),(100));\nvar end = (function (){var x__4217__auto__ = cljs.core.count(data);\nvar y__4218__auto__ = (start + num);\nreturn ((x__4217__auto__ < y__4218__auto__) ? x__4217__auto__ : y__4218__auto__);\n})();\nvar idxs = cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,end);\nvar fragment = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,idx){\nvar val = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(data,idx);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,idx,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"val\",\"val\",128701612),shadow.remote.runtime.writer.pr_str_limit(val,val_limit)], null));\n}),cljs.core.PersistentArrayMap.EMPTY,idxs);\nreturn fragment;\n}));\n});\nshadow.remote.runtime.obj_support.browseable_seq = (function shadow$remote$runtime$obj_support$browseable_seq(p__45266){\nvar map__45267 = p__45266;\nvar map__45267__$1 = (((((!((map__45267 == null))))?(((((map__45267.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45267.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45267):map__45267);\nvar desc = map__45267__$1;\nvar data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45267__$1,new cljs.core.Keyword(null,\"data\",\"data\",-232669377));\nvar view_order = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45267__$1,new cljs.core.Keyword(null,\"view-order\",\"view-order\",566761574));\nreturn cljs.core.assoc_in(cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"nav\",\"nav\",719540477)], null),(function (p__45270){\nvar map__45273 = p__45270;\nvar map__45273__$1 = (((((!((map__45273 == null))))?(((((map__45273.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45273.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45273):map__45273);\nvar idx = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45273__$1,new cljs.core.Keyword(null,\"idx\",\"idx\",1053688473));\nvar val = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(view_order,idx);\nvar nav = clojure.datafy.nav(data,idx,val);\nreturn shadow.remote.runtime.obj_support.obj_ref(nav);\n})),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"fragment\",\"fragment\",826775688)], null),(function (p__45279){\nvar map__45280 = p__45279;\nvar map__45280__$1 = (((((!((map__45280 == null))))?(((((map__45280.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45280.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45280):map__45280);\nvar msg = map__45280__$1;\nvar start = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45280__$1,new cljs.core.Keyword(null,\"start\",\"start\",-355208981));\nvar num = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45280__$1,new cljs.core.Keyword(null,\"num\",\"num\",1985240673));\nvar val_limit = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45280__$1,new cljs.core.Keyword(null,\"val-limit\",\"val-limit\",1428666181),(100));\nvar end = (function (){var x__4217__auto__ = cljs.core.count(view_order);\nvar y__4218__auto__ = (start + num);\nreturn ((x__4217__auto__ < y__4218__auto__) ? x__4217__auto__ : y__4218__auto__);\n})();\nvar idxs = cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,end);\nvar fragment = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,idx){\nvar val = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(view_order,idx);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,idx,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"val\",\"val\",128701612),shadow.remote.runtime.writer.pr_str_limit(val,val_limit)], null));\n}),cljs.core.PersistentArrayMap.EMPTY,idxs);\nreturn fragment;\n}));\n});\nshadow.remote.runtime.obj_support.pageable_seq = (function shadow$remote$runtime$obj_support$pageable_seq(p__45288){\nvar map__45289 = p__45288;\nvar map__45289__$1 = (((((!((map__45289 == null))))?(((((map__45289.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45289.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45289):map__45289);\nvar desc = map__45289__$1;\nvar data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45289__$1,new cljs.core.Keyword(null,\"data\",\"data\",-232669377));\nvar seq_state_ref = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tail\",\"tail\",-1146023564),data,new cljs.core.Keyword(null,\"realized\",\"realized\",-153188123),cljs.core.PersistentVector.EMPTY], null));\nreturn cljs.core.assoc_in(cljs.core.assoc_in(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(desc,new cljs.core.Keyword(null,\"seq-state-ref\",\"seq-state-ref\",869825254),seq_state_ref),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"nav\",\"nav\",719540477)], null),(function (p__45296){\nvar map__45297 = p__45296;\nvar map__45297__$1 = (((((!((map__45297 == null))))?(((((map__45297.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45297.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45297):map__45297);\nvar idx = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45297__$1,new cljs.core.Keyword(null,\"idx\",\"idx\",1053688473));\nvar val = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"realized\",\"realized\",-153188123).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(seq_state_ref)),idx);\nvar nav = clojure.datafy.nav(data,idx,val);\nreturn shadow.remote.runtime.obj_support.obj_ref(nav);\n})),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"chunk\",\"chunk\",-1191159620)], null),(function (p__45299){\nvar map__45300 = p__45299;\nvar map__45300__$1 = (((((!((map__45300 == null))))?(((((map__45300.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45300.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45300):map__45300);\nvar msg = map__45300__$1;\nvar start = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45300__$1,new cljs.core.Keyword(null,\"start\",\"start\",-355208981));\nvar num = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45300__$1,new cljs.core.Keyword(null,\"num\",\"num\",1985240673));\nvar val_limit = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45300__$1,new cljs.core.Keyword(null,\"val-limit\",\"val-limit\",1428666181),(100));\nvar map__45304 = cljs.core.deref(seq_state_ref);\nvar map__45304__$1 = (((((!((map__45304 == null))))?(((((map__45304.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45304.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45304):map__45304);\nvar seq_state = map__45304__$1;\nvar tail = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45304__$1,new cljs.core.Keyword(null,\"tail\",\"tail\",-1146023564));\nvar realized = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45304__$1,new cljs.core.Keyword(null,\"realized\",\"realized\",-153188123));\nvar end = (start + num);\nvar missing = (end - cljs.core.count(realized));\nvar vec__45305 = (function (){var tail__$1 = tail;\nvar realized__$1 = realized;\nvar missing__$1 = missing;\nwhile(true){\nif((!((missing__$1 > (0))))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tail__$1,realized__$1], null);\n} else {\nvar next = cljs.core.first(tail__$1);\nif((next == null)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,realized__$1], null);\n} else {\nvar G__45625 = cljs.core.rest(tail__$1);\nvar G__45626 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(realized__$1,next);\nvar G__45627 = (missing__$1 - (1));\ntail__$1 = G__45625;\nrealized__$1 = G__45626;\nmissing__$1 = G__45627;\ncontinue;\n}\n}\nbreak;\n}\n})();\nvar tail__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45305,(0),null);\nvar realized__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45305,(1),null);\nvar idxs = cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,(function (){var x__4217__auto__ = end;\nvar y__4218__auto__ = cljs.core.count(realized__$1);\nreturn ((x__4217__auto__ < y__4218__auto__) ? x__4217__auto__ : y__4218__auto__);\n})());\nvar fragment = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,idx){\nvar val = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(realized__$1,idx);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,idx,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"val\",\"val\",128701612),shadow.remote.runtime.writer.pr_str_limit(val,val_limit)], null));\n}),cljs.core.PersistentArrayMap.EMPTY,idxs);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(seq_state_ref,cljs.core.assoc,new cljs.core.Keyword(null,\"tail\",\"tail\",-1146023564),tail__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\"realized\",\"realized\",-153188123),realized__$1], 0));\n\nreturn new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"start\",\"start\",-355208981),start,new cljs.core.Keyword(null,\"realized\",\"realized\",-153188123),cljs.core.count(realized__$1),new cljs.core.Keyword(null,\"fragment\",\"fragment\",826775688),fragment,new cljs.core.Keyword(null,\"more?\",\"more?\",519437444),(((cljs.core.count(realized__$1) > end)) || ((!((tail__$1 == null)))))], null);\n}));\n});\nshadow.remote.runtime.obj_support.inspect_basic = (function shadow$remote$runtime$obj_support$inspect_basic(p__45327,obj,opts){\nvar map__45329 = p__45327;\nvar map__45329__$1 = (((((!((map__45329 == null))))?(((((map__45329.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45329.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45329):map__45329);\nvar desc = map__45329__$1;\nvar data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45329__$1,new cljs.core.Keyword(null,\"data\",\"data\",-232669377));\nif((data == null)){\nreturn cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468)], null),new cljs.core.Keyword(null,\"nil\",\"nil\",99600501));\n} else {\nif(typeof data === 'string'){\nreturn cljs.core.assoc_in(cljs.core.update.cljs$core$IFn$_invoke$arity$4(desc,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468),new cljs.core.Keyword(null,\"string\",\"string\",-1989541586),new cljs.core.Keyword(null,\"length\",\"length\",588987862),((data).length)], null)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"get-value\",\"get-value\",2108514284)], null),(function (msg){\nreturn data;\n}));\n} else {\nif(cljs.core.boolean_QMARK_(data)){\nreturn cljs.core.assoc_in(cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468)], null),new cljs.core.Keyword(null,\"boolean\",\"boolean\",-1919418404)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"get-value\",\"get-value\",2108514284)], null),(function (msg){\nreturn data;\n}));\n} else {\nif(typeof data === 'number'){\nreturn cljs.core.assoc_in(cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468)], null),new cljs.core.Keyword(null,\"number\",\"number\",1570378438)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"get-value\",\"get-value\",2108514284)], null),(function (msg){\nreturn data;\n}));\n} else {\nif((data instanceof cljs.core.Keyword)){\nreturn cljs.core.assoc_in(cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468)], null),new cljs.core.Keyword(null,\"keyword\",\"keyword\",811389747)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"get-value\",\"get-value\",2108514284)], null),(function (msg){\nreturn data;\n}));\n} else {\nif((data instanceof cljs.core.Symbol)){\nreturn cljs.core.assoc_in(cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468)], null),new cljs.core.Keyword(null,\"symbol\",\"symbol\",-1038572696)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"get-value\",\"get-value\",2108514284)], null),(function (msg){\nreturn data;\n}));\n} else {\nif(cljs.core.map_QMARK_(data)){\nreturn shadow.remote.runtime.obj_support.browseable_kv(shadow.remote.runtime.obj_support.attempt_to_sort(cljs.core.update.cljs$core$IFn$_invoke$arity$4(desc,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468),new cljs.core.Keyword(null,\"map\",\"map\",1371690461),new cljs.core.Keyword(null,\"entries\",\"entries\",-86943161),cljs.core.count(data)], null)),cljs.core.keys(data)));\n} else {\nif(cljs.core.vector_QMARK_(data)){\nreturn shadow.remote.runtime.obj_support.browseable_vec(cljs.core.update.cljs$core$IFn$_invoke$arity$4(desc,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468),new cljs.core.Keyword(null,\"vec\",\"vec\",-657847931),new cljs.core.Keyword(null,\"entries\",\"entries\",-86943161),cljs.core.count(data)], null)));\n} else {\nif(cljs.core.set_QMARK_(data)){\nreturn shadow.remote.runtime.obj_support.browseable_seq(shadow.remote.runtime.obj_support.attempt_to_sort(cljs.core.update.cljs$core$IFn$_invoke$arity$4(desc,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468),new cljs.core.Keyword(null,\"set\",\"set\",304602554),new cljs.core.Keyword(null,\"entries\",\"entries\",-86943161),cljs.core.count(data)], null)),data));\n} else {\nif(cljs.core.list_QMARK_(data)){\nreturn shadow.remote.runtime.obj_support.browseable_seq(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.update.cljs$core$IFn$_invoke$arity$4(desc,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468),new cljs.core.Keyword(null,\"list\",\"list\",765357683),new cljs.core.Keyword(null,\"entries\",\"entries\",-86943161),cljs.core.count(data)], null)),new cljs.core.Keyword(null,\"view-order\",\"view-order\",566761574),cljs.core.vec(data)));\n} else {\nif(cljs.core.seq_QMARK_(data)){\nreturn shadow.remote.runtime.obj_support.pageable_seq(cljs.core.update.cljs$core$IFn$_invoke$arity$4(desc,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),cljs.core.merge,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468),new cljs.core.Keyword(null,\"lazy-seq\",\"lazy-seq\",-1150898621)], null)));\n} else {\nreturn cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"data-type\",\"data-type\",-326421468)], null),new cljs.core.Keyword(null,\"unsupported\",\"unsupported\",-1045607016));\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nshadow.remote.runtime.obj_support.inspect_type_info = (function shadow$remote$runtime$obj_support$inspect_type_info(desc,obj,opts){\nreturn cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"obj-type\",\"obj-type\",-1658555496)], null),shadow.remote.runtime.obj_support.obj_type_string(obj));\n});\nshadow.remote.runtime.obj_support.inspect_source_info = (function shadow$remote$runtime$obj_support$inspect_source_info(desc,obj,opts){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(desc,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),cljs.core.merge,cljs.core.select_keys(opts,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"ns\",\"ns\",441598760),new cljs.core.Keyword(null,\"line\",\"line\",212345235),new cljs.core.Keyword(null,\"column\",\"column\",2078222095),new cljs.core.Keyword(null,\"label\",\"label\",1718410804)], null)));\n});\nshadow.remote.runtime.obj_support.add_summary_op = (function shadow$remote$runtime$obj_support$add_summary_op(p__45351){\nvar map__45352 = p__45351;\nvar map__45352__$1 = (((((!((map__45352 == null))))?(((((map__45352.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45352.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45352):map__45352);\nvar desc = map__45352__$1;\nvar summary = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45352__$1,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952));\nreturn cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),new cljs.core.Keyword(null,\"summary\",\"summary\",380847952)], null),(function (msg){\nreturn summary;\n}));\n});\nshadow.remote.runtime.obj_support.default_describe = (function shadow$remote$runtime$obj_support$default_describe(o,opts){\nvar data = clojure.datafy.datafy(o);\nreturn shadow.remote.runtime.obj_support.add_summary_op(shadow.remote.runtime.obj_support.inspect_source_info(shadow.remote.runtime.obj_support.inspect_type_info(shadow.remote.runtime.obj_support.inspect_basic(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"data\",\"data\",-232669377),data,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"added-at\",\"added-at\",-352499434),new cljs.core.Keyword(null,\"added-at\",\"added-at\",-352499434).cljs$core$IFn$_invoke$arity$1(opts),new cljs.core.Keyword(null,\"datafied\",\"datafied\",2076148104),(!((data === o)))], null),new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),(function (){var G__45360 = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"str\",\"str\",1089608819),(function (p1__45356_SHARP_){\nreturn shadow.remote.runtime.obj_support.as_str(o,p1__45356_SHARP_);\n}),new cljs.core.Keyword(null,\"edn\",\"edn\",1317840885),(function (p1__45357_SHARP_){\nreturn shadow.remote.runtime.obj_support.as_edn(o,p1__45357_SHARP_);\n}),new cljs.core.Keyword(null,\"edn-limit\",\"edn-limit\",1353115803),(function (p1__45358_SHARP_){\nreturn shadow.remote.runtime.obj_support.as_edn_limit(o,p1__45358_SHARP_);\n})], null);\nif(((cljs.core.coll_QMARK_(o)) || (cljs.core.seq_QMARK_(o)))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__45360,new cljs.core.Keyword(null,\"pprint\",\"pprint\",1220198395),(function (p1__45359_SHARP_){\nreturn shadow.remote.runtime.obj_support.as_pprint(o,p1__45359_SHARP_);\n}));\n} else {\nreturn G__45360;\n}\n})()], null),o,opts),o,opts),o,opts));\n});\ngoog.object.set(shadow.remote.runtime.api.Inspectable,\"_\",true);\n\ngoog.object.set(shadow.remote.runtime.api.describe,\"_\",(function (o,opts){\nreturn shadow.remote.runtime.obj_support.default_describe(o,opts);\n}));\n\ngoog.object.set(shadow.remote.runtime.api.Inspectable,\"null\",true);\n\ngoog.object.set(shadow.remote.runtime.api.describe,\"null\",(function (o,opts){\nreturn shadow.remote.runtime.obj_support.default_describe(o,opts);\n}));\nshadow.remote.runtime.obj_support.add_supports = (function shadow$remote$runtime$obj_support$add_supports(p__45371){\nvar map__45372 = p__45371;\nvar map__45372__$1 = (((((!((map__45372 == null))))?(((((map__45372.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45372.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45372):map__45372);\nvar desc = map__45372__$1;\nvar handlers = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45372__$1,new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781));\nreturn cljs.core.assoc_in(desc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),new cljs.core.Keyword(null,\"supports\",\"supports\",1501242067)], null),cljs.core.set(cljs.core.keys(handlers)));\n});\nshadow.remote.runtime.obj_support.ensure_descriptor = (function shadow$remote$runtime$obj_support$ensure_descriptor(p__45376){\nvar map__45377 = p__45376;\nvar map__45377__$1 = (((((!((map__45377 == null))))?(((((map__45377.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45377.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45377):map__45377);\nvar entry = map__45377__$1;\nvar obj = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45377__$1,new cljs.core.Keyword(null,\"obj\",\"obj\",981763962));\nvar obj_info = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45377__$1,new cljs.core.Keyword(null,\"obj-info\",\"obj-info\",-373842651));\nvar desc = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45377__$1,new cljs.core.Keyword(null,\"desc\",\"desc\",2093485764));\nif(cljs.core.truth_(desc)){\nreturn entry;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(entry,new cljs.core.Keyword(null,\"desc\",\"desc\",2093485764),shadow.remote.runtime.obj_support.add_supports(shadow.remote.runtime.api.describe(obj,obj_info)));\n}\n});\nshadow.remote.runtime.obj_support.get_tap_history = (function shadow$remote$runtime$obj_support$get_tap_history(p__45381,num){\nvar map__45383 = p__45381;\nvar map__45383__$1 = (((((!((map__45383 == null))))?(((((map__45383.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45383.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45383):map__45383);\nvar svc = map__45383__$1;\nvar state_ref = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45383__$1,new cljs.core.Keyword(null,\"state-ref\",\"state-ref\",2127874952));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),cljs.core.take.cljs$core$IFn$_invoke$arity$2(num,cljs.core.reverse(cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2((function (p1__45380_SHARP_){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(p1__45380_SHARP_,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"obj-info\",\"obj-info\",-373842651),new cljs.core.Keyword(null,\"added-at\",\"added-at\",-352499434)], null));\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__45379_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"tap\",\"tap\",-1086702463),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(p1__45379_SHARP_,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"obj-info\",\"obj-info\",-373842651),new cljs.core.Keyword(null,\"from\",\"from\",1815293044)], null)));\n}),cljs.core.vals(new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref)))))))));\n});\nshadow.remote.runtime.obj_support.obj_describe_STAR_ = (function shadow$remote$runtime$obj_support$obj_describe_STAR_(p__45391,oid){\nvar map__45395 = p__45391;\nvar map__45395__$1 = (((((!((map__45395 == null))))?(((((map__45395.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45395.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45395):map__45395);\nvar state_ref = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45395__$1,new cljs.core.Keyword(null,\"state-ref\",\"state-ref\",2127874952));\nif(cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref)),oid)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),oid], null),shadow.remote.runtime.obj_support.ensure_descriptor);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),oid,new cljs.core.Keyword(null,\"access-at\",\"access-at\",-1487162729)], null),shadow.remote.runtime.obj_support.now());\n\nvar summary = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state_ref),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),oid,new cljs.core.Keyword(null,\"desc\",\"desc\",2093485764),new cljs.core.Keyword(null,\"summary\",\"summary\",380847952)], null));\nreturn summary;\n} else {\nreturn null;\n}\n});\nshadow.remote.runtime.obj_support.obj_describe = (function shadow$remote$runtime$obj_support$obj_describe(p__45411,p__45412){\nvar map__45413 = p__45411;\nvar map__45413__$1 = (((((!((map__45413 == null))))?(((((map__45413.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45413.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45413):map__45413);\nvar svc = map__45413__$1;\nvar runtime = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45413__$1,new cljs.core.Keyword(null,\"runtime\",\"runtime\",-1331573996));\nvar map__45414 = p__45412;\nvar map__45414__$1 = (((((!((map__45414 == null))))?(((((map__45414.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45414.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45414):map__45414);\nvar msg = map__45414__$1;\nvar oid = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45414__$1,new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334));\nvar temp__5733__auto__ = shadow.remote.runtime.obj_support.obj_describe_STAR_(svc,oid);\nif(cljs.core.truth_(temp__5733__auto__)){\nvar summary = temp__5733__auto__;\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"op\",\"op\",-1882987955),new cljs.core.Keyword(null,\"obj-summary\",\"obj-summary\",-1372191064),new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),oid,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),summary], null));\n} else {\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"op\",\"op\",-1882987955),new cljs.core.Keyword(null,\"obj-not-found\",\"obj-not-found\",1577257696),new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),oid], null));\n}\n});\nshadow.remote.runtime.obj_support.obj_request = (function shadow$remote$runtime$obj_support$obj_request(p__45431,p__45432){\nvar map__45433 = p__45431;\nvar map__45433__$1 = (((((!((map__45433 == null))))?(((((map__45433.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45433.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45433):map__45433);\nvar this$ = map__45433__$1;\nvar state_ref = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45433__$1,new cljs.core.Keyword(null,\"state-ref\",\"state-ref\",2127874952));\nvar runtime = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45433__$1,new cljs.core.Keyword(null,\"runtime\",\"runtime\",-1331573996));\nvar map__45435 = p__45432;\nvar map__45435__$1 = (((((!((map__45435 == null))))?(((((map__45435.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45435.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45435):map__45435);\nvar msg = map__45435__$1;\nvar oid = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45435__$1,new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334));\nvar request_op = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45435__$1,new cljs.core.Keyword(null,\"request-op\",\"request-op\",1472997246));\nif((!(cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref)),oid)))){\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"op\",\"op\",-1882987955),new cljs.core.Keyword(null,\"obj-not-found\",\"obj-not-found\",1577257696),new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),oid], null));\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),oid], null),shadow.remote.runtime.obj_support.ensure_descriptor);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),oid,new cljs.core.Keyword(null,\"access-at\",\"access-at\",-1487162729)], null),shadow.remote.runtime.obj_support.now());\n\nvar entry = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state_ref),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),oid], null));\nvar request_fn = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(entry,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"desc\",\"desc\",2093485764),new cljs.core.Keyword(null,\"handlers\",\"handlers\",79528781),request_op], null));\nif(cljs.core.not(request_fn)){\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"op\",\"op\",-1882987955),new cljs.core.Keyword(null,\"obj-request-not-supported\",\"obj-request-not-supported\",93907126),new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),oid,new cljs.core.Keyword(null,\"request-op\",\"request-op\",1472997246),request_op], null));\n} else {\ntry{var result = (request_fn.cljs$core$IFn$_invoke$arity$1 ? request_fn.cljs$core$IFn$_invoke$arity$1(msg) : request_fn.call(null,msg));\nif((!(shadow.remote.runtime.obj_support.obj_ref_QMARK_(result)))){\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"op\",\"op\",-1882987955),new cljs.core.Keyword(null,\"obj-result\",\"obj-result\",-486300152),new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),oid,new cljs.core.Keyword(null,\"result\",\"result\",1415092211),result], null));\n} else {\nvar new_oid = shadow.remote.runtime.obj_support.next_oid();\nvar ts = shadow.remote.runtime.obj_support.now();\nvar new_entry = new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),new_oid,new cljs.core.Keyword(null,\"obj\",\"obj\",981763962),new cljs.core.Keyword(null,\"obj\",\"obj\",981763962).cljs$core$IFn$_invoke$arity$1(result),new cljs.core.Keyword(null,\"access-at\",\"access-at\",-1487162729),ts,new cljs.core.Keyword(null,\"obj-info\",\"obj-info\",-373842651),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"added-at\",\"added-at\",-352499434),ts,new cljs.core.Keyword(null,\"added-via\",\"added-via\",1525812109),oid], null)], null);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),new_oid], null),new_entry);\n\nvar reply_msg = (function (){var G__45447 = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"op\",\"op\",-1882987955),new cljs.core.Keyword(null,\"obj-result-ref\",\"obj-result-ref\",1537374891),new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),oid,new cljs.core.Keyword(null,\"ref-oid\",\"ref-oid\",-526648644),new_oid], null);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\"summary\",\"summary\",380847952).cljs$core$IFn$_invoke$arity$1(msg))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__45447,new cljs.core.Keyword(null,\"summary\",\"summary\",380847952),shadow.remote.runtime.obj_support.obj_describe_STAR_(this$,new_oid));\n} else {\nreturn G__45447;\n}\n})();\nreturn shadow.remote.runtime.shared.reply(runtime,msg,reply_msg);\n}\n}catch (e45442){var e = e45442;\nconsole.warn(\"action-request-action failed\",new cljs.core.Keyword(null,\"obj\",\"obj\",981763962).cljs$core$IFn$_invoke$arity$1(entry),e);\n\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"op\",\"op\",-1882987955),new cljs.core.Keyword(null,\"obj-request-failed\",\"obj-request-failed\",-1782005406),new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),oid,new cljs.core.Keyword(null,\"msg\",\"msg\",-1386103444),msg,new cljs.core.Keyword(null,\"ex-oid\",\"ex-oid\",-650256737),(function (){var G__45443 = this$;\nvar G__45444 = e;\nvar G__45445 = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"msg\",\"msg\",-1386103444),msg], null);\nreturn (shadow.remote.runtime.obj_support.register.cljs$core$IFn$_invoke$arity$3 ? shadow.remote.runtime.obj_support.register.cljs$core$IFn$_invoke$arity$3(G__45443,G__45444,G__45445) : shadow.remote.runtime.obj_support.register.call(null,G__45443,G__45444,G__45445));\n})()], null));\n}}\n}\n});\nshadow.remote.runtime.obj_support.obj_forget = (function shadow$remote$runtime$obj_support$obj_forget(p__45452,p__45453){\nvar map__45454 = p__45452;\nvar map__45454__$1 = (((((!((map__45454 == null))))?(((((map__45454.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45454.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45454):map__45454);\nvar svc = map__45454__$1;\nvar state_ref = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45454__$1,new cljs.core.Keyword(null,\"state-ref\",\"state-ref\",2127874952));\nvar map__45455 = p__45453;\nvar map__45455__$1 = (((((!((map__45455 == null))))?(((((map__45455.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45455.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45455):map__45455);\nvar msg = map__45455__$1;\nvar oid = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45455__$1,new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,cljs.core.update,new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([oid], 0));\n});\nshadow.remote.runtime.obj_support.obj_forget_all = (function shadow$remote$runtime$obj_support$obj_forget_all(p__45459,msg){\nvar map__45461 = p__45459;\nvar map__45461__$1 = (((((!((map__45461 == null))))?(((((map__45461.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45461.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45461):map__45461);\nvar svc = map__45461__$1;\nvar state_ref = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45461__$1,new cljs.core.Keyword(null,\"state-ref\",\"state-ref\",2127874952));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc,new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),cljs.core.PersistentArrayMap.EMPTY);\n});\nshadow.remote.runtime.obj_support.basic_gc_BANG_ = (function shadow$remote$runtime$obj_support$basic_gc_BANG_(state){\nvar objs_to_drop = cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"oid\",\"oid\",-768692334),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((100),cljs.core.reverse(cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"access-at\",\"access-at\",-1487162729),cljs.core.vals(new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734).cljs$core$IFn$_invoke$arity$1(state))))));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (state__$1,oid){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),cljs.core.dissoc,oid);\n}),state,objs_to_drop);\n});\nshadow.remote.runtime.obj_support.start = (function shadow$remote$runtime$obj_support$start(runtime){\nvar state_ref = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\"id-seq-ref\",\"id-seq-ref\",-98357047),(0)], null));\nvar svc = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"runtime\",\"runtime\",-1331573996),runtime,new cljs.core.Keyword(null,\"state-ref\",\"state-ref\",2127874952),state_ref], null);\nshadow.remote.runtime.api.add_extension(runtime,new cljs.core.Keyword(\"shadow.remote.runtime.obj-support\",\"ext\",\"shadow.remote.runtime.obj-support/ext\",-1896569346),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"ops\",\"ops\",1237330063),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"obj-describe\",\"obj-describe\",-34922904),(function (p1__45468_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_describe(svc,p1__45468_SHARP_);\n}),new cljs.core.Keyword(null,\"obj-request\",\"obj-request\",-1709325811),(function (p1__45469_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_request(svc,p1__45469_SHARP_);\n}),new cljs.core.Keyword(null,\"obj-forget\",\"obj-forget\",2003566115),(function (p1__45470_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_forget(svc,p1__45470_SHARP_);\n}),new cljs.core.Keyword(null,\"obj-forget-all\",\"obj-forget-all\",1418682131),(function (p1__45471_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_forget_all(svc,p1__45471_SHARP_);\n})], null),new cljs.core.Keyword(null,\"on-idle\",\"on-idle\",2044706602),(function (){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(state_ref,shadow.remote.runtime.obj_support.basic_gc_BANG_);\n})], null));\n\nreturn svc;\n});\nshadow.remote.runtime.obj_support.register = (function shadow$remote$runtime$obj_support$register(p__45479,obj,obj_info){\nvar map__45480 = p__45479;\nvar map__45480__$1 = (((((!((map__45480 == null))))?(((((map__45480.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45480.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45480):map__45480);\nvar svc = map__45480__$1;\nvar state_ref = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45480__$1,new cljs.core.Keyword(null,\"state-ref\",\"state-ref\",2127874952));\nvar oid = shadow.remote.runtime.obj_support.next_oid();\nif((!(((cljs.core.vector_QMARK_(obj)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\"shadow.remote\",\"wrap\",\"shadow.remote/wrap\",996267199),cljs.core.first(obj))) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(obj),(3))))))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,shadow.remote.runtime.obj_support.register_STAR_,oid,obj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([obj_info], 0));\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,shadow.remote.runtime.obj_support.register_STAR_,oid,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(obj,(1)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([obj_info,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(obj,(2))], 0))], 0));\n}\n\nreturn oid;\n});\nshadow.remote.runtime.obj_support.get_ref = (function shadow$remote$runtime$obj_support$get_ref(p__45486,obj_id){\nvar map__45487 = p__45486;\nvar map__45487__$1 = (((((!((map__45487 == null))))?(((((map__45487.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45487.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45487):map__45487);\nvar state_ref = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45487__$1,new cljs.core.Keyword(null,\"state-ref\",\"state-ref\",2127874952));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state_ref),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"objects\",\"objects\",2099713734),obj_id], null));\n});\nshadow.remote.runtime.obj_support.stop = (function shadow$remote$runtime$obj_support$stop(p__45489){\nvar map__45490 = p__45489;\nvar map__45490__$1 = (((((!((map__45490 == null))))?(((((map__45490.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45490.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45490):map__45490);\nvar runtime = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45490__$1,new cljs.core.Keyword(null,\"runtime\",\"runtime\",-1331573996));\nreturn shadow.remote.runtime.api.del_extension(runtime,new cljs.core.Keyword(\"shadow.remote.runtime.obj-support\",\"ext\",\"shadow.remote.runtime.obj-support/ext\",-1896569346));\n});\n","~:ns-info",["^ ","~:rename-macros",null,"~:renames",["^ "],"~:meta",["^ ","~:file","shadow/remote/runtime/obj_support.cljc","~:line",1,"~:column",5,"~:end-line",1,"~:end-column",38],"~:ns-aliases",["^ ","~$cljs.loader","~$shadow.loader","~$clojure.pprint","~$cljs.pprint","~$react","~$shadow.js.shim.module$react","~$clojure.spec.alpha","~$cljs.spec.alpha"],"~:use-macros",null,"~:excludes",["~#set",[]],"~:name","~$shadow.remote.runtime.obj-support","~:op","~:ns","~:imports",null,"~:requires",["^ ","~$shadow.remote.runtime.api","^M","~$clojure.datafy","^N","~$p","^M","~$cljs.core","^O","~$goog","^P","^?","^?","^>","^?","~$shadow.remote.runtime.writer","^Q","~$lw","^Q","~$shadow.remote.runtime.shared","^S","~$shared","^S","~$d","^N"],"~:seen",["^F",["~:require"]],"~:uses",["^ ","~$pprint","^?"],"~:require-macros",["^ ","^O","^O","^?","^?","^>","^?"],"~:form",["~#list",["~$ns","^H",["^[",["^V",["^N","~:as","~$d"],["^>","~:refer",["^[",["^X"]]],["^M","^11","~$p"],["^S","^11","^T"],["^Q","^11","^R"]]]]],"~:flags",["^ ","^V",["^F",[]]],"~:js-deps",["^ "],"~:deps",["^P","^O","^N","^?","^M","^S","^Q"]],"^J","^H","~:resource-id",["~:shadow.build.classpath/resource","shadow/remote/runtime/obj_support.cljc"],"~:compiled-at",1613924120971,"~:resource-name","shadow/remote/runtime/obj_support.cljc","~:warnings",[],"~:source","(ns shadow.remote.runtime.obj-support\n  (:require\n    [clojure.datafy :as d]\n    [clojure.pprint :refer (pprint)]\n    [shadow.remote.runtime.api :as p]\n    [shadow.remote.runtime.shared :as shared]\n    [shadow.remote.runtime.writer :as lw])\n  #?(:clj (:import [java.util UUID])))\n\n(defrecord Reference [obj])\n\n(defn obj-ref [obj]\n  (when (some? obj)\n    (Reference. obj)))\n\n(defn obj-ref? [result]\n  (instance? Reference result))\n\n(defn now []\n  #?(:clj\n     (System/currentTimeMillis)\n     :cljs\n     (js/Date.now)))\n\n(defn next-oid []\n  #?(:clj\n     (str (UUID/randomUUID))\n     :cljs\n     (str (random-uuid))))\n\n(defn register*\n  [state oid obj obj-info]\n\n  (let [ts (now)\n\n        obj-entry\n        {:oid oid\n         :obj obj\n         ;; tracking that for GC purposes\n         :access-at ts\n         :obj-info (assoc obj-info :added-at ts)}]\n\n    (assoc-in state [:objects oid] obj-entry)))\n\n(declare register)\n\n(defn obj-type-string [obj]\n  (if (nil? obj)\n    \"nil\"\n    #?(:clj\n       (-> (class obj) (.getName))\n       :cljs\n       (pr-str (type obj)))))\n\n(defmulti make-view\n  (fn [state-ref {:keys [view-type] :as msg} entry]\n    view-type))\n\n;; 1meg?\n(def default-max-print-size (* 1 1024 1024))\n\n(defn as-edn\n  [data {:keys [limit] :or {limit default-max-print-size} :as msg}]\n  (let [lw (lw/limit-writer limit)]\n    #?(:clj\n       (print-method data lw)\n       :cljs\n       (pr-writer data lw (pr-opts)))\n    (lw/get-string lw)))\n\n(defn as-pprint\n  [data {:keys [limit] :or {limit default-max-print-size} :as msg}]\n  ;; CLJ pprint for some reason doesn't run out of memory when printing circular stuff\n  ;; but it never finishes either\n  (let [lw (lw/limit-writer limit)]\n    (pprint data lw)\n    (lw/get-string lw)))\n\n(defn as-edn-limit\n  [data {:keys [limit] :as msg}]\n  (lw/pr-str-limit data limit))\n\n;; FIXME: should likely support limit options\n(defn as-str\n  [data msg]\n  (str data))\n\n(defn attempt-to-sort [desc coll]\n  (try\n    (-> desc\n        (assoc :view-order (vec (sort coll)))\n        (assoc-in [:summary :sorted] true))\n    (catch #?(:clj Exception :cljs :default) e\n      (-> desc\n          (assoc :view-order (vec coll))\n          (assoc-in [:summary :sorted] false)))))\n\n(defn browseable-kv [{:keys [view-order data] :as desc}]\n  (-> desc\n      (assoc-in [:handlers :nav]\n        (fn [{:keys [idx]}]\n          (let [key (nth view-order idx)\n                val (get data key)\n                nav (d/nav data key val)]\n            (obj-ref nav))))\n      (assoc-in [:handlers :fragment]\n        (fn [{:keys [start num key-limit val-limit]\n              :or {key-limit 100\n                   val-limit 100}\n              :as msg}]\n\n          (let [end (min (count view-order) (+ start num))\n                idxs (range start end)\n                fragment\n                (reduce\n                  (fn [m idx]\n                    (let [key (nth view-order idx)\n                          val (get data key)]\n                      (assoc m idx {:key (try\n                                           (lw/pr-str-limit key key-limit)\n                                           (catch #?(:clj Exception :cljs :default) e\n                                             [true \"... print failed ...\"]))\n                                    :val (try\n                                           (lw/pr-str-limit val val-limit)\n                                           (catch #?(:clj Exception :cljs :default) e\n                                             [true \"... print failed ...\"]))})))\n                  {}\n                  idxs)]\n\n            fragment)))))\n\n(defn browseable-vec [{:keys [data] :as desc}]\n  (-> desc\n      (assoc-in [:handlers :nav]\n        (fn [{:keys [idx]}]\n          (let [val (nth data idx)\n                nav (d/nav data idx val)]\n            (obj-ref nav))))\n      (assoc-in [:handlers :fragment]\n        (fn [{:keys [start num val-limit]\n              :or {val-limit 100}\n              :as msg}]\n\n          (let [end (min (count data) (+ start num))\n                idxs (range start end)\n                fragment\n                (reduce\n                  (fn [m idx]\n                    (let [val (nth data idx)]\n                      (assoc m idx {:val (lw/pr-str-limit val val-limit)})))\n                  {}\n                  idxs)]\n\n            fragment)))))\n\n(defn browseable-seq [{:keys [data view-order] :as desc}]\n  (-> desc\n      (assoc-in [:handlers :nav]\n        (fn [{:keys [idx]}]\n          (let [val (nth view-order idx)\n                nav (d/nav data idx val)]\n            (obj-ref nav))))\n      (assoc-in [:handlers :fragment]\n        (fn [{:keys [start num val-limit]\n              :or {val-limit 100}\n              :as msg}]\n\n          (let [end (min (count view-order) (+ start num))\n                idxs (range start end)\n                fragment\n                (reduce\n                  (fn [m idx]\n                    (let [val (nth view-order idx)]\n                      (assoc m idx {:val (lw/pr-str-limit val val-limit)})))\n                  {}\n                  idxs)]\n\n            fragment)))))\n\n(defn pageable-seq [{:keys [data] :as desc}]\n  ;; data is always beginning of seq\n  (let [seq-state-ref\n        (atom {:tail data ;; track where we are at\n               :realized []})]\n    (-> desc\n        (assoc :seq-state-ref seq-state-ref)\n        (assoc-in [:handlers :nav]\n          (fn [{:keys [idx]}]\n            ;; FIXME: should validate that idx is actually realized\n            (let [val (nth (:realized @seq-state-ref) idx)\n                  ;; FIXME: not sure there are many cases where lazy seqs actually have nav?\n                  nav (d/nav data idx val)]\n              (obj-ref nav))))\n        (assoc-in [:handlers :chunk]\n          (fn [{:keys [start num val-limit]\n                :or {val-limit 100}\n                :as msg}]\n\n            ;; need locking otherwise threads may realize more than once\n            ;; shouldn't be much of an issue but better be safe\n            (locking seq-state-ref\n              (let [{:keys [tail realized] :as seq-state} @seq-state-ref\n\n                    end (+ start num)\n                    missing (- end (count realized))\n\n                    [tail realized]\n                    (loop [tail tail\n                           realized realized\n                           missing missing]\n                      (if-not (pos? missing)\n                        [tail realized]\n                        (let [next (first tail)]\n                          (if (nil? next)\n                            [nil realized]\n                            (recur (rest tail) (conj realized next) (dec missing))))))\n\n                    idxs (range start (min end (count realized)))\n                    fragment\n                    (reduce\n                      (fn [m idx]\n                        (let [val (nth realized idx)]\n                          (assoc m idx {:val (lw/pr-str-limit val val-limit)})))\n                      {}\n                      idxs)]\n\n                (swap! seq-state-ref assoc :tail tail :realized realized)\n\n                {:start start\n                 :realized (count realized)\n                 :fragment fragment\n                 :more? (or (> (count realized) end) (some? tail))})))))))\n\n(comment\n  (def x (pageable-seq {:data (map (fn [x] (prn [:realize x]) x) (range 10))}))\n\n  (let [chunk (get-in x [:handlers :chunk])]\n    (chunk {:start 0 :num 5})\n    )\n\n  (let [chunk (get-in x [:handlers :chunk])]\n    (chunk {:start 5 :num 10})\n    ))\n\n(defn inspect-basic [{:keys [data] :as desc} obj opts]\n  (cond\n    (nil? data)\n    (assoc-in desc [:summary :data-type] :nil)\n\n    (string? data)\n    (-> desc\n        (update :summary merge {:data-type :string\n                                :length (count data)})\n        ;; FIXME: substring support?\n        (assoc-in [:handlers :get-value] (fn [msg] data)))\n\n    (boolean? data)\n    (-> desc\n        (assoc-in [:summary :data-type] :boolean)\n        (assoc-in [:handlers :get-value] (fn [msg] data)))\n\n    (number? data)\n    (-> desc\n        (assoc-in [:summary :data-type] :number)\n        (assoc-in [:handlers :get-value] (fn [msg] data)))\n\n    (keyword? data)\n    (-> desc\n        (assoc-in [:summary :data-type] :keyword)\n        (assoc-in [:handlers :get-value] (fn [msg] data)))\n\n    (symbol? data)\n    (-> desc\n        (assoc-in [:summary :data-type] :symbol)\n        (assoc-in [:handlers :get-value] (fn [msg] data)))\n\n    (map? data)\n    (-> desc\n        (update :summary merge {:data-type :map\n                                :entries (count data)})\n        (attempt-to-sort (keys data))\n        (browseable-kv))\n\n    (vector? data)\n    (-> desc\n        (update :summary merge {:data-type :vec\n                                :entries (count data)})\n        (browseable-vec))\n\n    (set? data)\n    (-> desc\n        (update :summary merge {:data-type :set\n                                :entries (count data)})\n        (attempt-to-sort data)\n        (browseable-seq))\n\n    (list? data)\n    (-> desc\n        (update :summary merge {:data-type :list\n                                :entries (count data)})\n        (assoc :view-order (vec data))\n        (browseable-seq))\n\n    ;; lazy seqs\n    (seq? data)\n    (-> desc\n        (update :summary merge {:data-type :lazy-seq})\n        (pageable-seq))\n\n    ;; FIXME: records?\n\n    :else\n    (assoc-in desc [:summary :data-type] :unsupported)))\n\n(defn inspect-type-info [desc obj opts]\n  (assoc-in desc [:summary :obj-type] (obj-type-string obj)))\n\n(defn inspect-source-info [desc obj opts]\n  (update desc :summary merge (select-keys opts [:ns :line :column :label])))\n\n(defn add-summary-op [{:keys [summary] :as desc}]\n  (assoc-in desc [:handlers :summary] (fn [msg] summary)))\n\n(defn default-describe [o opts]\n  (let [data (d/datafy o)]\n\n    (-> {:data data\n         :summary\n         {:added-at (:added-at opts)\n          :datafied (not (identical? data o))}\n\n         ;; FIXME: should these work on the datafy result or the original?\n         ;; maybe different ops? maybe msg option?\n         :handlers\n         (-> {:str #(as-str o %)\n              ;; FIXME: only do those for actual clojure vals?\n              :edn #(as-edn o %)\n              :edn-limit #(as-edn-limit o %)}\n             (cond->\n               (or (coll? o) (seq? o))\n               (assoc :pprint #(as-pprint o %))))}\n\n        (inspect-basic o opts)\n        (inspect-type-info o opts)\n        (inspect-source-info o opts)\n        (add-summary-op))))\n\n(extend-protocol p/Inspectable\n  #?(:clj Object :cljs default)\n  (describe [o opts]\n    (default-describe o opts))\n\n  nil\n  (describe [o opts]\n    (default-describe o opts)))\n\n(comment\n  (p/describe\n    {:hello \"world\"}\n    {:added-at \"NOW\" :ns \"foo.bar\"}))\n\n;; called after describe so impls don't have to worry about this\n(defn add-supports [{:keys [handlers] :as desc}]\n  (assoc-in desc [:summary :supports] (set (keys handlers))))\n\n;; FIXME: this is running inside swap! which means it can potentially\n;; end up getting executed several times for the same object (in CLJ)\n;; that is not great and should be handled differently\n(defn ensure-descriptor [{:keys [obj obj-info desc] :as entry}]\n  (if desc\n    entry\n    (assoc entry :desc (-> (p/describe obj obj-info)\n                           (add-supports)))))\n\n(defn get-tap-history [{:keys [state-ref] :as svc} num]\n  (->> (:objects @state-ref)\n       (vals)\n       (filter #(= :tap (get-in % [:obj-info :from])))\n       (sort-by #(get-in % [:obj-info :added-at]))\n       (reverse)\n       (take num)\n       (map :oid)\n       (into [])))\n\n(defn obj-describe*\n  [{:keys [state-ref]}\n   oid]\n  (when (contains? (:objects @state-ref) oid)\n    (swap! state-ref update-in [:objects oid] ensure-descriptor)\n    (swap! state-ref assoc-in [:objects oid :access-at] (now))\n    (let [summary (get-in @state-ref [:objects oid :desc :summary])]\n      summary)))\n\n(defn obj-describe\n  [{:keys [runtime] :as svc}\n   {:keys [oid] :as msg}]\n  (if-let [summary (obj-describe* svc oid)]\n    (shared/reply runtime msg {:op :obj-summary\n                               :oid oid\n                               :summary summary})\n    (shared/reply runtime msg {:op :obj-not-found :oid oid})))\n\n(defn obj-request\n  [{:keys [state-ref runtime] :as this}\n   {:keys [oid request-op] :as msg}]\n  (if-not (contains? (:objects @state-ref) oid)\n    (shared/reply runtime msg {:op :obj-not-found :oid oid})\n    (do (swap! state-ref update-in [:objects oid] ensure-descriptor)\n        (swap! state-ref assoc-in [:objects oid :access-at] (now))\n        (let [entry (get-in @state-ref [:objects oid])\n              request-fn (get-in entry [:desc :handlers request-op])]\n          (if-not request-fn\n            (shared/reply runtime msg {:op :obj-request-not-supported\n                                       :oid oid\n                                       :request-op request-op})\n            (try\n              (let [result (request-fn msg)]\n\n                ;; FIXME: add support for generic async results\n                ;; all handlers should already be sync but allow async results\n                (if-not (obj-ref? result)\n                  (shared/reply runtime msg\n                    {:op :obj-result\n                     :oid oid\n                     :result result})\n\n                  (let [new-oid (next-oid)\n                        ts (now)\n\n                        new-entry\n                        {:oid new-oid\n                         :obj (:obj result)\n                         :access-at ts\n                         ;; FIXME: should keep some info on how this ref came to be\n                         :obj-info {:added-at ts\n                                    :added-via oid}}]\n\n                    (swap! state-ref assoc-in [:objects new-oid] new-entry)\n\n                    (let [reply-msg\n                          (-> {:op :obj-result-ref\n                               :oid oid\n                               :ref-oid new-oid}\n                              (cond->\n                                ;; only send new-obj :summary when requested\n                                (:summary msg)\n                                (assoc :summary (obj-describe* this new-oid))))]\n\n                      (shared/reply runtime msg reply-msg)))))\n\n              (catch #?(:clj Exception :cljs :default) e\n                #?(:cljs (js/console.warn \"action-request-action failed\" (:obj entry) e))\n                (shared/reply runtime msg\n                  {:op :obj-request-failed\n                   :oid oid\n                   :msg msg\n                   :ex-oid (register this e {:msg msg})})))))\n        )))\n\n(defn obj-forget\n  [{:keys [state-ref] :as svc}\n   {:keys [oid] :as msg}]\n  (swap! state-ref update :objects dissoc oid))\n\n(defn obj-forget-all\n  [{:keys [state-ref] :as svc}\n   msg]\n  (swap! state-ref assoc :objects {}))\n\n(defn basic-gc! [state]\n  (let [objs-to-drop\n        (->> (:objects state)\n             (vals)\n             (sort-by :access-at)\n             (reverse)\n             (drop 100) ;; FIXME: make configurable\n             (map :oid))]\n\n    (reduce\n      (fn [state oid]\n        (update state :objects dissoc oid))\n      state\n      objs-to-drop)))\n\n(defn start [runtime]\n  (let [state-ref (atom {:objects {}\n                         :id-seq-ref 0})\n\n        svc\n        {:runtime runtime\n         :state-ref state-ref}]\n\n    (p/add-extension runtime\n      ::ext\n      {:ops {:obj-describe #(obj-describe svc %)\n             :obj-request #(obj-request svc %)\n             :obj-forget #(obj-forget svc %)\n             :obj-forget-all #(obj-forget-all svc %)}\n       :on-idle #(swap! state-ref basic-gc!)})\n\n    svc))\n\n(defn register [{:keys [state-ref] :as svc} obj obj-info]\n  (let [oid (next-oid)]\n    (if-not (and (vector? obj) (= :shadow.remote/wrap (first obj)) (= (count obj) 3))\n      (swap! state-ref register* oid obj obj-info)\n      (swap! state-ref register* oid (nth obj 1) (merge obj-info (nth obj 2))))\n    oid))\n\n(defn get-ref [{:keys [state-ref]} obj-id]\n  (get-in @state-ref [:objects obj-id]))\n\n(defn stop [{:keys [runtime]}]\n  (p/del-extension runtime ::ext))\n\n(comment\n  (def obj-support (:clj-runtime-obj-support (shadow.cljs.devtools.server.runtime/get-instance)))\n  (swap! (:state-ref obj-support) assoc :objects {})\n  )","~:reader-features",["^F",["~:cljs"]],"~:cljc",true,"~:source-map-compact",["^ ","mappings","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","names",["this__4380__auto__","k__4381__auto__","this__4382__auto__","k45087","else__4383__auto__","G__45100","cljs.core/Keyword","obj","cljs.core.get","__extmap","this__4399__auto__","f__4400__auto__","init__4401__auto__","cljs.core.reduce","ret__4402__auto__","p__45102","vec__45103","k__4403__auto__","cljs.core.nth","v__4404__auto__","this__4394__auto__","writer__4395__auto__","opts__4396__auto__","pr-pair__4397__auto__","keyval__4398__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","cljs.core/PersistentVector","G__45086","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__4378__auto__","__meta","this__4375__auto__","__hash","this__4384__auto__","cljs.core/count","this__4376__auto__","h__4238__auto__","coll__4377__auto__","cljs.core/hash-unordered-coll","this45088","other45089","cljs.core._EQ_","this__4389__auto__","k__4390__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core.into","cljs.core/not-empty","this__4387__auto__","k__4388__auto__","pred__45157","cljs.core/keyword-identical?","expr__45158","cljs.core.assoc","this__4392__auto__","cljs.core/seq","cljs.core/MapEntry","this__4379__auto__","this__4385__auto__","entry__4386__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","shadow.remote.runtime.obj-support/Reference","this__4423__auto__","cljs.core/List","writer__4424__auto__","cljs.core/-write","G__45092","extmap__4419__auto__","G__45172","cljs.core/record?","shadow.remote.runtime.obj-support/->Reference","shadow.remote.runtime.obj-support/map->Reference","shadow.remote.runtime.obj-support/obj-ref","shadow.remote.runtime.obj-support/obj-ref?","result","shadow.remote.runtime.obj-support/now","js/Date.now","shadow.remote.runtime.obj-support/next-oid","cljs.core/random-uuid","shadow.remote.runtime.obj-support/register*","state","oid","obj-info","ts","obj-entry","cljs.core/assoc-in","shadow.remote.runtime.obj-support/obj-type-string","cljs.core.pr_str","cljs.core/type","js/shadow","js/shadow.remote","js/shadow.remote.runtime","js/shadow.remote.runtime.obj-support","js/shadow.remote.runtime.obj-support.make-view","method-table__4619__auto__","cljs.core.atom","prefer-table__4620__auto__","method-cache__4621__auto__","cached-hierarchy__4622__auto__","hierarchy__4623__auto__","fexpr__45181","cljs.core/MultiFn","cljs.core.symbol","shadow.remote.runtime.obj-support/make-view","p__45182","map__45183","cljs.core/PROTOCOL_SENTINEL","cljs.core.apply","cljs.core/hash-map","state-ref","view-type","msg","entry","shadow.remote.runtime.obj-support/default-max-print-size","p__45186","map__45187","shadow.remote.runtime.obj-support/as-edn","data","limit","lw","shadow.remote.runtime.writer/limit-writer","cljs.core/pr-writer","cljs.core/pr-opts","shadow.remote.runtime.writer/get-string","p__45190","map__45191","shadow.remote.runtime.obj-support/as-pprint","cljs.pprint.pprint","p__45194","map__45195","shadow.remote.runtime.obj-support/as-edn-limit","shadow.remote.runtime.writer/pr-str-limit","shadow.remote.runtime.obj-support/as-str","shadow.remote.runtime.obj-support/attempt-to-sort","desc","coll","e45201","cljs.core/vec","cljs.core.sort","e","p__45209","map__45210","shadow.remote.runtime.obj-support/browseable-kv","view-order","p__45214","map__45216","idx","key","val","nav","clojure.datafy/nav","p__45221","map__45222","start","num","key-limit","val-limit","end","x__4217__auto__","y__4218__auto__","idxs","cljs.core.range","fragment","m","e45238","e45242","p__45253","map__45254","shadow.remote.runtime.obj-support/browseable-vec","p__45258","map__45259","p__45262","map__45263","p__45266","map__45267","shadow.remote.runtime.obj-support/browseable-seq","p__45270","map__45273","p__45279","map__45280","p__45288","map__45289","shadow.remote.runtime.obj-support/pageable-seq","seq-state-ref","p__45296","map__45297","cljs.core/deref","p__45299","map__45300","map__45304","vec__45305","tail","realized","seq-state","missing","next","cljs.core/first","cljs.core/rest","cljs.core.conj","cljs.core.swap_BANG_","cljs.core/assoc","p__45327","map__45329","shadow.remote.runtime.obj-support/inspect-basic","opts","cljs.core.update","cljs.core/merge","cljs.core/boolean?","cljs.core/Symbol","cljs.core/map?","cljs.core/keys","cljs.core/set?","cljs.core/list?","cljs.core/seq?","shadow.remote.runtime.obj-support/inspect-type-info","shadow.remote.runtime.obj-support/inspect-source-info","cljs.core/select-keys","p__45351","map__45352","shadow.remote.runtime.obj-support/add-summary-op","summary","shadow.remote.runtime.obj-support/default-describe","o","clojure.datafy/datafy","p1__45356#","p1__45357#","p1__45358#","G__45360","cljs.core/coll?","p1__45359#","goog.object/set","shadow.remote.runtime.api/Inspectable","shadow.remote.runtime.api/describe","p__45371","map__45372","shadow.remote.runtime.obj-support/add-supports","handlers","cljs.core/set","p__45376","map__45377","shadow.remote.runtime.obj-support/ensure-descriptor","p__45381","map__45383","shadow.remote.runtime.obj-support/get-tap-history","svc","cljs.core/vals","p1__45379#","cljs.core.filter","cljs.core.get_in","p1__45380#","cljs.core.sort_by","cljs.core/reverse","cljs.core.take","cljs.core.map","p__45391","map__45395","shadow.remote.runtime.obj-support/obj-describe*","cljs.core/update-in","p__45411","p__45412","map__45413","map__45414","shadow.remote.runtime.obj-support/obj-describe","runtime","temp__5733__auto__","shadow.remote.runtime.shared/reply","p__45431","p__45432","map__45433","map__45435","shadow.remote.runtime.obj-support/obj-request","this","request-op","request-fn","cljs.core/not","e45442","new-oid","new-entry","reply-msg","G__45447","js/console.warn","G__45443","G__45444","G__45445","shadow.remote.runtime.obj-support/register","p__45452","p__45453","map__45454","map__45455","shadow.remote.runtime.obj-support/obj-forget","cljs.core/update","cljs.core/dissoc","p__45459","map__45461","shadow.remote.runtime.obj-support/obj-forget-all","shadow.remote.runtime.obj-support/basic-gc!","objs-to-drop","cljs.core.drop","shadow.remote.runtime.obj-support/start","p1__45468#","p1__45469#","p1__45470#","p1__45471#","shadow.remote.runtime.api/add-extension","p__45479","map__45480","cljs.core.merge","p__45486","map__45487","shadow.remote.runtime.obj-support/get-ref","obj-id","p__45489","map__45490","shadow.remote.runtime.obj-support/stop","shadow.remote.runtime.api/del-extension"]],"~:used-vars",["^F",["~$shadow.remote.runtime.obj-support/obj-describe*","~$cljs.core/boolean?","~$cljs.core/MultiFn","~$shadow.remote.runtime.obj-support/stop","~$shadow.remote.runtime.api/del-extension","~$shadow.remote.runtime.api/describe","~$shadow.remote.runtime.obj-support/obj-forget-all","~$cljs.core/pr-sequential-writer","~$cljs.core/vector?","~$cljs.core/filter","~$cljs.core/=","~$cljs.core/keys","~$shadow.remote.runtime.obj-support/obj-forget","~$cljs.core/-assoc","~$cljs.core/-write","~$shadow.remote.runtime.obj-support/attempt-to-sort","~$cljs.core/pr-writer","~$cljs.core/-iterator","~$shadow.remote.runtime.obj-support/inspect-basic","~$cljs.core/count","~$cljs.core/deref","~$cljs.core/reduce","~$cljs.core/seq","~$cljs.core/Keyword","~$cljs.core/take","~$shadow.remote.runtime.obj-support/basic-gc!","~$shadow.remote.runtime.obj-support/browseable-seq","~$shadow.remote.runtime.writer/pr-str-limit","~$cljs.core/MapEntry","~$cljs.core/dissoc","~$shadow.remote.runtime.obj-support/as-pprint","~$shadow.remote.runtime.obj-support/pageable-seq","~$cljs.core/pr-opts","~$cljs.core/-with-meta","~$cljs.core/concat","~$cljs.core/pr-str","~$shadow.remote.runtime.obj-support/add-summary-op","~$js/console.warn","~$shadow.remote.runtime.obj-support/browseable-kv","~$js/shadow.remote","~$js/shadow.remote.runtime.obj-support","~$cljs.core/set","~$cljs.core/contains?","~$cljs.core/into","~$cljs.core/map?","~$shadow.remote.runtime.obj-support/start","~$shadow.remote.runtime.obj-support/default-max-print-size","~$shadow.remote.runtime.obj-support/get-tap-history","~$cljs.core/sort","~$cljs.core/-conj","~$cljs.core/update","~$js/Date.now","~$shadow.remote.runtime.obj-support/inspect-source-info","~$cljs.core/map","~$shadow.remote.runtime.obj-support/obj-ref?","~$shadow.remote.runtime.api/Inspectable","~$cljs.core/PersistentVector","~$shadow.remote.runtime.obj-support/default-describe","~$cljs.core/get-in","~$cljs.core/List","~$cljs.core/vals","~$cljs.core/swap!","~$shadow.remote.runtime.obj-support/get-ref","~$shadow.remote.runtime.api/add-extension","~$cljs.core/get","~$shadow.remote.runtime.obj-support/Reference","~$goog.object/set","~$js/shadow.remote.runtime","~$cljs.core/-nth","~$shadow.remote.runtime.obj-support/register","~$shadow.remote.runtime.obj-support/register*","~$cljs.core/not-empty","~$shadow.remote.runtime.shared/reply","~$shadow.remote.runtime.obj-support/obj-ref","~$shadow.remote.runtime.obj-support/obj-describe","~$cljs.core/symbol","~$js/shadow.remote.runtime.obj-support.make-view","~$shadow.remote.runtime.obj-support/now","~$cljs.core/-lookup","~$cljs.core/set?","~$cljs.core/nth","~$cljs.core/list?","~$shadow.remote.runtime.obj-support/as-edn","~$cljs.core/nil-iter","~$shadow.remote.runtime.obj-support/browseable-vec","~$shadow.remote.runtime.obj-support/obj-type-string","~$cljs.core/vec","~$cljs.core/RecordIter","~$cljs.core/select-keys","~$cljs.core/not","~$shadow.remote.runtime.obj-support/->Reference","~$cljs.core/assoc","~$shadow.remote.runtime.obj-support/as-str","~$shadow.remote.runtime.writer/get-string","~$cljs.core/assoc-in","~$cljs.core/reverse","~$cljs.core/Symbol","~$shadow.remote.runtime.obj-support/next-oid","~$cljs.core/coll?","~$shadow.remote.runtime.obj-support/as-edn-limit","~$cljs.pprint/pprint","~$shadow.remote.runtime.obj-support/make-view","~$js/shadow","~$shadow.remote.runtime.obj-support/inspect-type-info","~$shadow.remote.runtime.obj-support/add-supports","~$cljs.core/first","~$cljs.core/seq?","~$cljs.core/sort-by","~$cljs.core/merge","~$shadow.remote.runtime.obj-support/map->Reference","~$cljs.core/update-in","~$cljs.core/random-uuid","~$cljs.core/type","~$shadow.remote.runtime.obj-support/obj-request","~$shadow.remote.runtime.obj-support/ensure-descriptor"]]],"~:cache-keys",["~#cmap",[["^17","goog/dom/tagname.js"],["6025affb7181cd40418600864f58eed1ea80055d","~:shadow.build.compiler/resolve",["^ ","~:require-id",null,"~:deps-ids",["^F",[]],"~:deps-syms",["^P","~$goog.dom.HtmlElement"]]],["^17","goog/math/math.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","~$goog.array","~$goog.asserts"]]],["^17","goog/html/trustedtypes.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","goog/labs/useragent/browser.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^49","~$goog.labs.userAgent.util","~$goog.object","~$goog.string.internal"]]],["^17","goog/html/safeurl.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4:","~$goog.fs.url","~$goog.html.TrustedResourceUrl","~$goog.i18n.bidi.Dir","~$goog.i18n.bidi.DirectionalString","~$goog.string.Const","~$goog.string.TypedString","^4="]]],["^17","goog/array/array.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4:"]]],["^17","goog/debug/error.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","goog/dom/nodetype.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","cljs/pprint.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^O","~$clojure.string","~$goog.string","~$goog.string.StringBuffer"]]],["^17","goog/string/typedstring.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","goog/object/object.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","goog/dom/asserts.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4:"]]],["^17","shadow/remote/runtime/writer.cljs"],["8f33466de3d66bb02dbd135af9ac741295242f90","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^O","^4F"]]],"~:SHADOW-TIMESTAMP",[1598798247000,1598798247000,1592608845000],["^17","goog/math/long.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4:","~$goog.reflect"]]],["^17","goog/html/trustedresourceurl.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4:","~$goog.html.trustedtypes","^4@","^4A","^4B","^4C"]]],["^17","goog/string/internal.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","goog/functions/functions.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","goog/html/safestyle.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^49","^4:","~$goog.html.SafeUrl","^4B","^4C","^4="]]],["^17","goog/dom/safe.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4:","~$goog.dom.asserts","~$goog.functions","~$goog.html.SafeHtml","~$goog.html.SafeScript","~$goog.html.SafeStyle","^4J","^4?","~$goog.html.uncheckedconversions","^4B","^4="]]],["^17","goog/structs/map.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","~$goog.iter.Iterator","~$goog.iter.StopIteration"]]],["^17","goog/html/safehtml.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^49","^4:","~$goog.dom.TagName","~$goog.dom.tags","^4N","^4O","~$goog.html.SafeStyleSheet","^4J","^4?","^4I","^4@","^4A","~$goog.labs.userAgent.browser","^4<","^4B","^4C","^4="]]],["^17","goog/dom/tags.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4<"]]],["^17","goog/asserts/asserts.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","~$goog.debug.Error","~$goog.dom.NodeType"]]],["^17","goog/uri/uri.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^49","^4:","^4E","~$goog.structs","~$goog.structs.Map","~$goog.uri.utils","~$goog.uri.utils.ComponentIndex","~$goog.uri.utils.StandardQueryParam"]]],["^17","goog/i18n/bidi.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","clojure/core/protocols.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^O"]]],["^17","shadow/remote/runtime/shared.cljc"],["8f33466de3d66bb02dbd135af9ac741295242f90","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^O","^N","^?","^M","^Q"]]],["^17","goog/fs/url.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","goog/base.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",[]]],["^17","goog/structs/structs.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^49","^4<"]]],["^17","shadow/remote/runtime/obj_support.cljc"],["8f33466de3d66bb02dbd135af9ac741295242f90","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^O","^N","^?","^M","^S","^Q"]]],["^17","clojure/string.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^O","^4E","^4F"]]],["^17","shadow/remote/runtime/api.cljc"],["8f33466de3d66bb02dbd135af9ac741295242f90","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^O"]]],["^17","goog/string/string.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","~$goog.dom.safe","^4P","^4B","^4="]]],["^17","goog/reflect/reflect.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","goog/labs/useragent/util.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4="]]],["^17","goog/string/stringbuffer.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","goog/iter/iter.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^49","^4:","^4L","~$goog.math"]]],["^17","goog/html/uncheckedconversions.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4:","^4M","^4N","^4O","^4U","^4J","^4?","^4B","^4="]]],["^17","goog/dom/htmlelement.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P"]]],["^17","cljs/core.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","~$goog.math.Long","~$goog.math.Integer","^4E","^4<","^49","~$goog.Uri","^4F"]]],["^17","goog/html/safescript.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4:","^4I","^4B","^4C"]]],["^17","goog/html/safestylesheet.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^49","^4:","^4O","^4<","^4B","^4C","^4="]]],["^17","goog/math/integer.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4H"]]],["^17","goog/uri/utils.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^49","^4:","^4E"]]],["^17","goog/string/const.js"],["6025affb7181cd40418600864f58eed1ea80055d","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^4:","^4C"]]],["^17","clojure/datafy.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^44",["^ ","^45",null,"^46",["^F",[]],"^47",["^P","^O","~$clojure.core.protocols"]]]]],"~:clj-info",["^ ","jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/env.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/analyzer.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/default_data_readers.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/string.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/impl/errors.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/walk.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/pprint.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/externs.clj",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/core.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/instant.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/set.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/reader_types.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/edn.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/impl/inspect.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/data.json/1.0.0/data.json-1.0.0.jar!/clojure/data/json.clj",1592063582000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/util.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/source_map/base64_vlq.clj",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/js_deps.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/java/io.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/pprint.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/compiler.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/tagged_literals.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/core.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/source_map.clj",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/source_map/base64.clj",1592608845000],"~:analyzer",["^ ","^3",null,"^4",["^ "],"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",1,"^8",5,"^9",1,"^:",38],"^;",["^ ","^<","^=","^>","^?","^@","^A","^B","^C"],"^D",null,"^E",["^F",[]],"~:shadow/js-access-properties",["^F",["now"]],"^G","^H","^K",null,"^L",["^ ","^M","^M","^N","^N","~$p","^M","^O","^O","^P","^P","^?","^?","^>","^?","^Q","^Q","^R","^Q","^S","^S","^T","^S","~$d","^N"],"^U",["^F",["^V"]],"~:shadow/js-access-global",["^F",["Date"]],"^W",["^ ","^X","^?"],"~:defs",["^ ","~$add-summary-op",["^ ","~:protocol-inline",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",321,"^8",7,"^9",321,"^:",21,"~:arglists",["^[",["~$quote",["^[",[[["^ ","~:keys",["~$summary"],"^11","~$desc"]]]]]]],"^G","^2;","^6","shadow/remote/runtime/obj_support.cljc","^:",21,"~:method-params",["^[",[["~$p__45351"]]],"~:protocol-impl",null,"~:arglists-meta",["^[",[null,null]],"^8",1,"~:variadic?",false,"^7",321,"~:ret-tag",["^F",["~$clj","~$any"]],"^9",321,"~:max-fixed-arity",1,"~:fn-var",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^60"],"^11","^61"]]]]]]],"~$inspect-source-info",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",318,"^8",7,"^9",318,"^:",26,"^5Y",["^[",["^5Z",["^[",[["^61","~$obj","~$opts"]]]]]],"^G","^2K","^6","shadow/remote/runtime/obj_support.cljc","^:",26,"^62",["^[",[["^61","^6=","^6>"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",318,"^67",["^F",["^68","^69"]],"^9",318,"^6:",3,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^61","^6=","^6>"]]]]]],"~$Reference",["^ ","~:num-fields",1,"~:protocols",["^F",["~$cljs.core/IRecord","~$cljs.core/IKVReduce","~$cljs.core/IEquiv","~$cljs.core/IHash","~$cljs.core/ICollection","~$cljs.core/ICounted","~$cljs.core/ISeqable","~$cljs.core/IMeta","~$cljs.core/ICloneable","~$cljs.core/IPrintWithWriter","~$cljs.core/IIterable","~$cljs.core/IWithMeta","~$cljs.core/IAssociative","~$cljs.core/IMap","~$cljs.core/ILookup"]],"^G","^2X","^6","shadow/remote/runtime/obj_support.cljc","^:",21,"~:type",true,"^8",12,"~:internal-ctor",true,"^7",10,"~:record",true,"^9",10,"~:tag","~$function","~:skip-protocol-flag",["^F",["^6B","^6C","^6D","^6E","^6F","^6G","^6H","^6I","^6J","^6K","^6L","^6M","^6N","^6O","^6P"]]],"~$register*",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",31,"^8",7,"^9",31,"^:",16,"^5Y",["^[",["^5Z",["^[",[["~$state","~$oid","^6=","~$obj-info"]]]]]],"^G","^31","^6","shadow/remote/runtime/obj_support.cljc","^:",16,"^62",["^[",[["^6X","^6Y","^6=","^6Z"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",31,"^67",["^F",["^68","^69"]],"^9",31,"^6:",4,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^6X","^6Y","^6=","^6Z"]]]]]],"~$obj-forget",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",460,"^8",7,"^9",460,"^:",17,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["~$state-ref"],"^11","~$svc"],["^ ","^5[",["^6Y"],"^11","~$msg"]]]]]]],"^G","^1O","^6","shadow/remote/runtime/obj_support.cljc","^:",17,"^62",["^[",[["~$p__45452","~$p__45453"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",460,"^67",["^F",[null,"^69"]],"^9",460,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"],"^11","^71"],["^ ","^5[",["^6Y"],"^11","^72"]]]]]]],"~$now",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",19,"^8",7,"^9",19,"^:",10,"^5Y",["^[",["^5Z",["^[",[[]]]]]],"^G","^38","^6","shadow/remote/runtime/obj_support.cljc","^:",10,"^62",["^[",[[]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",19,"^67","~$js","^9",19,"^6:",0,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[]]]]]],"~$browseable-vec",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",132,"^8",7,"^9",132,"^:",21,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["~$data"],"^11","^61"]]]]]]],"^G","^3?","^6","shadow/remote/runtime/obj_support.cljc","^:",21,"^62",["^[",[["~$p__45253"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",132,"^67",["^F",["^68","^69"]],"^9",132,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^78"],"^11","^61"]]]]]]],"~$obj-describe",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",394,"^8",7,"^9",394,"^:",19,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["~$runtime"],"^11","^71"],["^ ","^5[",["^6Y"],"^11","^72"]]]]]]],"^G","^35","^6","shadow/remote/runtime/obj_support.cljc","^:",19,"^62",["^[",[["~$p__45411","~$p__45412"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",394,"^67","^69","^9",394,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^7;"],"^11","^71"],["^ ","^5[",["^6Y"],"^11","^72"]]]]]]],"~$attempt-to-sort",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",88,"^8",7,"^9",88,"^:",22,"^5Y",["^[",["^5Z",["^[",[["^61","~$coll"]]]]]],"^G","^1R","^6","shadow/remote/runtime/obj_support.cljc","^:",22,"^62",["^[",[["^61","^7?"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",88,"^9",88,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^61","^7?"]]]]]],"~$->Reference",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^:",21,"^8",12,"^6R",true,"~:factory","~:positional","^7",10,"^9",10,"^5Y",["^[",["^5Z",["^[",[["^6="]]]]],"~:doc","Positional factory function for shadow.remote.runtime.obj-support/Reference."],"^G","^3E","^6","shadow/remote/runtime/obj_support.cljc","^:",21,"^62",["^[",[["^6="]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^6R",true,"^66",false,"^7A","^7B","^7",10,"^67","^2X","^9",10,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^6="]]]]],"^7C","Positional factory function for shadow.remote.runtime.obj-support/Reference."],"~$inspect-basic",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",245,"^8",7,"^9",245,"^:",20,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^78"],"^11","^61"],"^6=","^6>"]]]]]],"^G","^1U","^6","shadow/remote/runtime/obj_support.cljc","^:",20,"^62",["^[",[["~$p__45327","^6=","^6>"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",245,"^67",["^F",["^68","^69"]],"^9",245,"^6:",3,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^78"],"^11","^61"],"^6=","^6>"]]]]]],"~$as-pprint",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",71,"^8",7,"^9",71,"^:",16,"^5Y",["^[",["^5Z",["^[",[["^78",["^ ","^5[",["~$limit"],"~:or",["^ ","^7G","~$default-max-print-size"],"^11","^72"]]]]]]],"^G","^25","^6","shadow/remote/runtime/obj_support.cljc","^:",16,"^62",["^[",[["^78","~$p__45190"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",71,"^67","^69","^9",71,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^78",["^ ","^5[",["^7G"],"^7H",["^ ","^7G","^7I"],"^11","^72"]]]]]]],"~$make-view",["^ ","^G","^3P","^6","shadow/remote/runtime/obj_support.cljc","^7",55,"^8",1,"^9",55,"^:",20,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",55,"^8",11,"^9",55,"^:",20],"^6T","^1E"],"~$obj-ref?",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",16,"^8",7,"^9",16,"^:",15,"^5Y",["^[",["^5Z",["^[",[["~$result"]]]]]],"^G","^2M","^6","shadow/remote/runtime/obj_support.cljc","^:",15,"^62",["^[",[["^7M"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",16,"^67","~$boolean","^9",16,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^7M"]]]]]],"~$as-str",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",84,"^8",7,"^9",84,"^:",13,"^5Y",["^[",["^5Z",["^[",[["^78","^72"]]]]]],"^G","^3G","^6","shadow/remote/runtime/obj_support.cljc","^:",13,"^62",["^[",[["^78","^72"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",84,"^67","~$string","^9",84,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^78","^72"]]]]]],"~$next-oid",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",25,"^8",7,"^9",25,"^:",15,"^5Y",["^[",["^5Z",["^[",[[]]]]]],"^G","^3L","^6","shadow/remote/runtime/obj_support.cljc","^:",15,"^62",["^[",[[]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",25,"^67","^7P","^9",25,"^6:",0,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[]]]]]],"~$get-tap-history",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",375,"^8",7,"^9",375,"^:",22,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"],"^11","^71"],"~$num"]]]]]],"^G","^2F","^6","shadow/remote/runtime/obj_support.cljc","^:",22,"^62",["^[",[["~$p__45381","^7S"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",375,"^67",["^F",[null,"^68","^69"]],"^9",375,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"],"^11","^71"],"^7S"]]]]]],"~$browseable-kv",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",98,"^8",7,"^9",98,"^:",20,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["~$view-order","^78"],"^11","^61"]]]]]]],"^G","^2=","^6","shadow/remote/runtime/obj_support.cljc","^:",20,"^62",["^[",[["~$p__45209"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",98,"^67",["^F",["^68","^69"]],"^9",98,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^7V","^78"],"^11","^61"]]]]]]],"~$start",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",485,"^8",7,"^9",485,"^:",12,"^5Y",["^[",["^5Z",["^[",[["^7;"]]]]]],"^G","^2D","^6","shadow/remote/runtime/obj_support.cljc","^:",12,"^62",["^[",[["^7;"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",485,"^67","^6O","^9",485,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^7;"]]]]]],"^7I",["^ ","^G","^2E","^6","shadow/remote/runtime/obj_support.cljc","^7",60,"^8",1,"^9",60,"^:",28,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",60,"^8",6,"^9",60,"^:",28],"^6T","~$number"],"~$inspect-type-info",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",315,"^8",7,"^9",315,"^:",24,"^5Y",["^[",["^5Z",["^[",[["^61","^6=","^6>"]]]]]],"^G","^3R","^6","shadow/remote/runtime/obj_support.cljc","^:",24,"^62",["^[",[["^61","^6=","^6>"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",315,"^67",["^F",["^68","^69"]],"^9",315,"^6:",3,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^61","^6=","^6>"]]]]]],"~$as-edn-limit",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",79,"^8",7,"^9",79,"^:",19,"^5Y",["^[",["^5Z",["^[",[["^78",["^ ","^5[",["^7G"],"^11","^72"]]]]]]],"^G","^3N","^6","shadow/remote/runtime/obj_support.cljc","^:",19,"^62",["^[",[["^78","~$p__45194"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",79,"^67","^69","^9",79,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^78",["^ ","^5[",["^7G"],"^11","^72"]]]]]]],"~$obj-request",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",403,"^8",7,"^9",403,"^:",18,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70","^7;"],"^11","~$this"],["^ ","^5[",["^6Y","~$request-op"],"^11","^72"]]]]]]],"^G","^40","^6","shadow/remote/runtime/obj_support.cljc","^:",18,"^62",["^[",[["~$p__45431","~$p__45432"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",403,"^67",["^F",[null,"^69"]],"^9",403,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70","^7;"],"^11","^82"],["^ ","^5[",["^6Y","^83"],"^11","^72"]]]]]]],"~$ensure-descriptor",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",369,"^8",7,"^9",369,"^:",24,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^6=","^6Z","^61"],"^11","~$entry"]]]]]]],"^G","^41","^6","shadow/remote/runtime/obj_support.cljc","^:",24,"^62",["^[",[["~$p__45376"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",369,"^67",["^F",[null,"^68","^69"]],"^9",369,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^6=","^6Z","^61"],"^11","^87"]]]]]]],"~$map->Reference",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^:",21,"^8",12,"^6R",true,"^7A","~:map","^7",10,"^9",10,"^5Y",["^[",["^5Z",["^[",[["~$G__45092"]]]]],"^7C","Factory function for shadow.remote.runtime.obj-support/Reference, taking a map of keywords to field values."],"^G","^3X","^6","shadow/remote/runtime/obj_support.cljc","^:",21,"^62",["^[",[["^8;"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^6R",true,"^66",false,"^7A","^8:","^7",10,"^67","^2X","^9",10,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^8;"]]]]],"^7C","Factory function for shadow.remote.runtime.obj-support/Reference, taking a map of keywords to field values."],"~$add-supports",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",363,"^8",7,"^9",363,"^:",19,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["~$handlers"],"^11","^61"]]]]]]],"^G","^3S","^6","shadow/remote/runtime/obj_support.cljc","^:",19,"^62",["^[",[["~$p__45371"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",363,"^67",["^F",["^68","^69"]],"^9",363,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^8="],"^11","^61"]]]]]]],"~$get-ref",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",510,"^8",7,"^9",510,"^:",14,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"]],"~$obj-id"]]]]]],"^G","^2U","^6","shadow/remote/runtime/obj_support.cljc","^:",14,"^62",["^[",[["~$p__45486","^8@"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",510,"^67",["^F",[null,"^69"]],"^9",510,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"]],"^8@"]]]]]],"~$obj-type-string",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",47,"^8",7,"^9",47,"^:",22,"^5Y",["^[",["^5Z",["^[",[["^6="]]]]]],"^G","^3@","^6","shadow/remote/runtime/obj_support.cljc","^:",22,"^62",["^[",[["^6="]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",47,"^67","^7P","^9",47,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^6="]]]]]],"~$default-describe",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",324,"^8",7,"^9",324,"^:",23,"^5Y",["^[",["^5Z",["^[",[["~$o","^6>"]]]]]],"^G","^2P","^6","shadow/remote/runtime/obj_support.cljc","^:",23,"^62",["^[",[["~$o","^6>"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",324,"^67",["^F",["^68","^69"]],"^9",324,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["~$o","^6>"]]]]]],"~$obj-describe*",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",385,"^8",7,"^9",385,"^:",20,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"]],"^6Y"]]]]]],"^G","^1C","^6","shadow/remote/runtime/obj_support.cljc","^:",20,"^62",["^[",[["~$p__45391","^6Y"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",385,"^67",["^F",[null,"^69","~$clj-nil"]],"^9",385,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"]],"^6Y"]]]]]],"~$stop",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",513,"^8",7,"^9",513,"^:",11,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^7;"]]]]]]]],"^G","^1F","^6","shadow/remote/runtime/obj_support.cljc","^:",11,"^62",["^[",[["~$p__45489"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",513,"^67","^69","^9",513,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^7;"]]]]]]]],"~$obj-forget-all",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",465,"^8",7,"^9",465,"^:",21,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"],"^11","^71"],"^72"]]]]]],"^G","^1I","^6","shadow/remote/runtime/obj_support.cljc","^:",21,"^62",["^[",[["~$p__45459","^72"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",465,"^67",["^F",[null,"^69"]],"^9",465,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"],"^11","^71"],"^72"]]]]]],"~$obj-ref",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",12,"^8",7,"^9",12,"^:",14,"^5Y",["^[",["^5Z",["^[",[["^6="]]]]]],"^G","^34","^6","shadow/remote/runtime/obj_support.cljc","^:",14,"^62",["^[",[["^6="]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",12,"^67",["^F",["^2X","^8F"]],"^9",12,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^6="]]]]]],"~$register",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",503,"^8",7,"^9",503,"^:",15,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"],"^11","^71"],"^6=","^6Z"]]]]]],"^G","^30","^6","shadow/remote/runtime/obj_support.cljc","^:",15,"^62",["^[",[["~$p__45479","^6=","^6Z"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",503,"^67","^7P","^9",503,"^6:",3,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^70"],"^11","^71"],"^6=","^6Z"]]]]]],"~$pageable-seq",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",180,"^8",7,"^9",180,"^:",19,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^78"],"^11","^61"]]]]]]],"^G","^26","^6","shadow/remote/runtime/obj_support.cljc","^:",19,"^62",["^[",[["~$p__45288"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",180,"^67",["^F",["^68","^69"]],"^9",180,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^78"],"^11","^61"]]]]]]],"~$basic-gc!",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",470,"^8",7,"^9",470,"^:",16,"^5Y",["^[",["^5Z",["^[",[["^6X"]]]]]],"^G","^20","^6","shadow/remote/runtime/obj_support.cljc","^:",16,"^62",["^[",[["^6X"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",470,"^67",["^F",[null,"^69"]],"^9",470,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^6X"]]]]]],"~$browseable-seq",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",156,"^8",7,"^9",156,"^:",21,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^78","^7V"],"^11","^61"]]]]]]],"^G","^21","^6","shadow/remote/runtime/obj_support.cljc","^:",21,"^62",["^[",[["~$p__45266"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",156,"^67",["^F",["^68","^69"]],"^9",156,"^6:",1,"^6;",true,"^5Y",["^[",["^5Z",["^[",[[["^ ","^5[",["^78","^7V"],"^11","^61"]]]]]]],"~$as-edn",["^ ","^5X",null,"^5",["^ ","^6","shadow/remote/runtime/obj_support.cljc","^7",62,"^8",7,"^9",62,"^:",13,"^5Y",["^[",["^5Z",["^[",[["^78",["^ ","^5[",["^7G"],"^7H",["^ ","^7G","^7I"],"^11","^72"]]]]]]],"^G","^3=","^6","shadow/remote/runtime/obj_support.cljc","^:",13,"^62",["^[",[["^78","~$p__45186"]]],"^64",null,"^65",["^[",[null,null]],"^8",1,"^66",false,"^7",62,"^67","^69","^9",62,"^6:",2,"^6;",true,"^5Y",["^[",["^5Z",["^[",[["^78",["^ ","^5[",["^7G"],"^7H",["^ ","^7G","^7I"],"^11","^72"]]]]]]]],"^Y",["^ ","^O","^O","^?","^?","^>","^?"],"~:cljs.analyzer/constants",["^ ","^U",["^F",["~:obj-not-found","~:tap","~:key-limit","^6=","~:num","~:view-type","~:obj-request-failed","~:obj-forget","~:lazy-seq","~:data-type","~:more?","~:desc","~:realized","~:obj-info","~:vec","~:key","~:limit","~:val-limit","~:view-order","~:else","~:number","~:objects","~:seq-state-ref","~:entries","~:fragment","~:default","~:datafied","~:obj-result","~:obj-describe","~:obj-summary","^J","~:symbol","~:state-ref","~:id-seq-ref","~:on-idle","~:start","~:obj-result-ref","~:val","~:msg","~:get-value","~:obj-request","^I","~:handlers","~:added-via","~:string","~:ops","^8","~:summary","~:oid","~:str","~:sorted","^7","~:list","~:supports","~:obj-forget-all","~:keyword","~:result","~:from","~:tail","~:label","~:runtime","~:nil","~:edn","~:obj-request-not-supported","~:added-at","~:length","~:access-at","~:unsupported","~:obj-type","~:idx","~:set","~:obj","~:edn-limit","~:hierarchy","~:pprint","~:chunk","~:ref-oid","~:boolean","~:nav","^8:","~:shadow.remote.runtime.obj-support/ext","~:request-op","~:shadow.remote/wrap","~:ex-oid","~:data"]],"~:order",["^:@","^6=","^9V","^:;","^96","^:9","^9>","^:B","^8Z","^9B","^99","^9;","^9U","^9X","^:L","^9Q","^:G","^:>","^9A","^9K","^8Y","^8X","^9:","^98","^9M","^:3","^95","^9?","^:D","^93","^92","^:6","^::","^9S","^9O","^:F","^9=","^:0","^9G","^9@","^8:","^97","^:?","^9Y","^91","^9<","^:<","^:=","^J","^7","^8","^:4","^9C","^9W","^:7","^:A","^:C","^9Z","^94","^9H","^8W","^:2","^:5","^I","^9F","^8V","^:I","^:8","^9N","^:K","^8[","^:1","^9D","^9R","^:E","^9L","^9I","^:H","^9T","^9J","^9E","^9P","^90","^9[","^:J"]],"^13",["^ ","^V",["^F",[]]],"^14",["^ "],"^15",["^P","^O","^N","^?","^M","^S","^Q"]],"^J","^H","~:ns-specs",["^ "],"~:ns-spec-vars",["^F",[]],"~:compiler-options",["^43",[["^:P","~:static-fns"],true,["^:P","~:shadow-tweaks"],null,["^:P","~:source-map-inline"],null,["^:P","~:elide-asserts"],false,["^:P","~:optimize-constants"],null,["^:P","^1:"],null,["^:P","~:external-config"],null,["^:P","~:tooling-config"],null,["^:P","~:emit-constants"],null,["^:P","~:load-tests"],null,["^:P","~:form-size-threshold"],null,["^:P","~:data-readers"],null,["^:P","~:infer-externs"],"~:auto",["^:P","^1<"],null,["~:js-options","~:js-provider"],"^V",["~:mode"],"~:dev",["^:P","~:fn-invoke-direct"],null,["^:P","~:source-map"],"/dev/null"]]]