goog.provide('sci.impl.namespaces');
sci.impl.namespaces.clojure_core_ns = sci.impl.utils.clojure_core_ns;
sci.impl.namespaces.locking_STAR_ = (function sci$impl$namespaces$locking_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46367 = arguments.length;
var i__5750__auto___46368 = (0);
while(true){
if((i__5750__auto___46368 < len__5749__auto___46367)){
args__5755__auto__.push((arguments[i__5750__auto___46368]));

var G__46369 = (i__5750__auto___46368 + (1));
i__5750__auto___46368 = G__46369;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.locking_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.locking_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_form,_bindings,_x,body){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"do","do",1686842252,null),null,(1),null)),body)));
}));

(sci.impl.namespaces.locking_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.locking_STAR_.cljs$lang$applyTo = (function (seq45056){
var G__45057 = cljs.core.first(seq45056);
var seq45056__$1 = cljs.core.next(seq45056);
var G__45058 = cljs.core.first(seq45056__$1);
var seq45056__$2 = cljs.core.next(seq45056__$1);
var G__45059 = cljs.core.first(seq45056__$2);
var seq45056__$3 = cljs.core.next(seq45056__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45057,G__45058,G__45059,seq45056__$3);
}));

sci.impl.namespaces.__GT__STAR_ = (function sci$impl$namespaces$__GT__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46371 = arguments.length;
var i__5750__auto___46372 = (0);
while(true){
if((i__5750__auto___46372 < len__5749__auto___46371)){
args__5755__auto__.push((arguments[i__5750__auto___46372]));

var G__46373 = (i__5750__auto___46372 + (1));
i__5750__auto___46372 = G__46373;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,x,forms){
var x__$1 = x;
var forms__$1 = forms;
while(true){
if(cljs.core.truth_(forms__$1)){
var form = cljs.core.first(forms__$1);
var threaded = ((cljs.core.seq_QMARK_(form))?cljs.core.with_meta(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,cljs.core.first(form),null,(1),null)),(new cljs.core.List(null,x__$1,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.next(form)], 0)))),cljs.core.meta(form)):(new cljs.core.List(null,form,(new cljs.core.List(null,x__$1,null,(1),null)),(2),null)));
var G__46375 = threaded;
var G__46376 = cljs.core.next(forms__$1);
x__$1 = G__46375;
forms__$1 = G__46376;
continue;
} else {
return x__$1;
}
break;
}
}));

(sci.impl.namespaces.__GT__STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.__GT__STAR_.cljs$lang$applyTo = (function (seq45061){
var G__45062 = cljs.core.first(seq45061);
var seq45061__$1 = cljs.core.next(seq45061);
var G__45063 = cljs.core.first(seq45061__$1);
var seq45061__$2 = cljs.core.next(seq45061__$1);
var G__45064 = cljs.core.first(seq45061__$2);
var seq45061__$3 = cljs.core.next(seq45061__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45062,G__45063,G__45064,seq45061__$3);
}));

sci.impl.namespaces.__GT__GT__STAR_ = (function sci$impl$namespaces$__GT__GT__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46378 = arguments.length;
var i__5750__auto___46379 = (0);
while(true){
if((i__5750__auto___46379 < len__5749__auto___46378)){
args__5755__auto__.push((arguments[i__5750__auto___46379]));

var G__46380 = (i__5750__auto___46379 + (1));
i__5750__auto___46379 = G__46380;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.__GT__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.__GT__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,x,forms){
var x__$1 = x;
var forms__$1 = forms;
while(true){
if(cljs.core.truth_(forms__$1)){
var form = cljs.core.first(forms__$1);
var threaded = ((cljs.core.seq_QMARK_(form))?cljs.core.with_meta(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,cljs.core.first(form),null,(1),null)),cljs.core.next(form),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,x__$1,null,(1),null))], 0)))),cljs.core.meta(form)):(new cljs.core.List(null,form,(new cljs.core.List(null,x__$1,null,(1),null)),(2),null)));
var G__46381 = threaded;
var G__46382 = cljs.core.next(forms__$1);
x__$1 = G__46381;
forms__$1 = G__46382;
continue;
} else {
return x__$1;
}
break;
}
}));

(sci.impl.namespaces.__GT__GT__STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.__GT__GT__STAR_.cljs$lang$applyTo = (function (seq45067){
var G__45068 = cljs.core.first(seq45067);
var seq45067__$1 = cljs.core.next(seq45067);
var G__45069 = cljs.core.first(seq45067__$1);
var seq45067__$2 = cljs.core.next(seq45067__$1);
var G__45070 = cljs.core.first(seq45067__$2);
var seq45067__$3 = cljs.core.next(seq45067__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45068,G__45069,G__45070,seq45067__$3);
}));

sci.impl.namespaces.as__GT__STAR_ = (function sci$impl$namespaces$as__GT__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46383 = arguments.length;
var i__5750__auto___46385 = (0);
while(true){
if((i__5750__auto___46385 < len__5749__auto___46383)){
args__5755__auto__.push((arguments[i__5750__auto___46385]));

var G__46386 = (i__5750__auto___46385 + (1));
i__5750__auto___46385 = G__46386;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((4) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);
return sci.impl.namespaces.as__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);
});

(sci.impl.namespaces.as__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,expr,name,forms){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,name,null,(1),null)),(new cljs.core.List(null,expr,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(name),cljs.core.butlast(forms))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,((cljs.core.empty_QMARK_(forms))?name:cljs.core.last(forms)),null,(1),null))], 0))));
}));

(sci.impl.namespaces.as__GT__STAR_.cljs$lang$maxFixedArity = (4));

/** @this {Function} */
(sci.impl.namespaces.as__GT__STAR_.cljs$lang$applyTo = (function (seq45075){
var G__45076 = cljs.core.first(seq45075);
var seq45075__$1 = cljs.core.next(seq45075);
var G__45077 = cljs.core.first(seq45075__$1);
var seq45075__$2 = cljs.core.next(seq45075__$1);
var G__45078 = cljs.core.first(seq45075__$2);
var seq45075__$3 = cljs.core.next(seq45075__$2);
var G__45079 = cljs.core.first(seq45075__$3);
var seq45075__$4 = cljs.core.next(seq45075__$3);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45076,G__45077,G__45078,G__45079,seq45075__$4);
}));

sci.impl.namespaces.comment_STAR_ = (function sci$impl$namespaces$comment_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46388 = arguments.length;
var i__5750__auto___46389 = (0);
while(true){
if((i__5750__auto___46389 < len__5749__auto___46388)){
args__5755__auto__.push((arguments[i__5750__auto___46389]));

var G__46390 = (i__5750__auto___46389 + (1));
i__5750__auto___46389 = G__46390;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.comment_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.comment_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,_body){
return null;
}));

(sci.impl.namespaces.comment_STAR_.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.comment_STAR_.cljs$lang$applyTo = (function (seq45082){
var G__45083 = cljs.core.first(seq45082);
var seq45082__$1 = cljs.core.next(seq45082);
var G__45084 = cljs.core.first(seq45082__$1);
var seq45082__$2 = cljs.core.next(seq45082__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45083,G__45084,seq45082__$2);
}));

sci.impl.namespaces.dotimes_STAR_ = (function sci$impl$namespaces$dotimes_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46391 = arguments.length;
var i__5750__auto___46392 = (0);
while(true){
if((i__5750__auto___46392 < len__5749__auto___46391)){
args__5755__auto__.push((arguments[i__5750__auto___46392]));

var G__46394 = (i__5750__auto___46392 + (1));
i__5750__auto___46392 = G__46394;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.dotimes_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.dotimes_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,bindings,body){
if(cljs.core.vector_QMARK_(bindings)){
} else {
throw (new Error("Assert failed: (vector? bindings)"));
}

if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(bindings))){
} else {
throw (new Error("Assert failed: (= 2 (count bindings))"));
}

var i = cljs.core.first(bindings);
var n = cljs.core.second(bindings);
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"n__45085__auto__","n__45085__auto__",714436722,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","long","cljs.core/long",241154833,null),null,(1),null)),(new cljs.core.List(null,n,null,(1),null))))),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,sci.impl.utils.allowed_loop,null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,i,null,(1),null)),(new cljs.core.List(null,(0),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","when","cljs.core/when",120293186,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","<","cljs.core/<",1677496129,null),null,(1),null)),(new cljs.core.List(null,i,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Symbol(null,"n__45085__auto__","n__45085__auto__",714436722,null),null,(1),null))], 0)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body,(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,sci.impl.utils.allowed_recur,null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","unchecked-inc","cljs.core/unchecked-inc",-501313167,null),null,(1),null)),(new cljs.core.List(null,i,null,(1),null))))),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.dotimes_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.dotimes_STAR_.cljs$lang$applyTo = (function (seq45086){
var G__45087 = cljs.core.first(seq45086);
var seq45086__$1 = cljs.core.next(seq45086);
var G__45088 = cljs.core.first(seq45086__$1);
var seq45086__$2 = cljs.core.next(seq45086__$1);
var G__45089 = cljs.core.first(seq45086__$2);
var seq45086__$3 = cljs.core.next(seq45086__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45087,G__45088,G__45089,seq45086__$3);
}));

/**
 * if-not from clojure.core
 */
sci.impl.namespaces.if_not_STAR_ = (function sci$impl$namespaces$if_not_STAR_(var_args){
var G__45103 = arguments.length;
switch (G__45103) {
case 4:
return sci.impl.namespaces.if_not_STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));

break;
case 5:
return sci.impl.namespaces.if_not_STAR_.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));

break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));

}
});

(sci.impl.namespaces.if_not_STAR_.cljs$core$IFn$_invoke$arity$4 = (function (_AMPERSAND_form,_AMPERSAND_env,test,then){
return sci.impl.namespaces.if_not_STAR_.cljs$core$IFn$_invoke$arity$5(_AMPERSAND_form,_AMPERSAND_env,test,then,null);
}));

(sci.impl.namespaces.if_not_STAR_.cljs$core$IFn$_invoke$arity$5 = (function (__AMPERSAND_form,__AMPERSAND_env,test,then,else$){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","not","cljs.core/not",100665144,null),null,(1),null)),(new cljs.core.List(null,test,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,then,null,(1),null)),(new cljs.core.List(null,else$,null,(1),null))], 0))));
}));

(sci.impl.namespaces.if_not_STAR_.cljs$lang$maxFixedArity = 5);

sci.impl.namespaces.when_STAR_ = (function sci$impl$namespaces$when_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46399 = arguments.length;
var i__5750__auto___46400 = (0);
while(true){
if((i__5750__auto___46400 < len__5749__auto___46399)){
args__5755__auto__.push((arguments[i__5750__auto___46400]));

var G__46401 = (i__5750__auto___46400 + (1));
i__5750__auto___46400 = G__46401;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.when_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.when_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,test,body){
return (new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),(new cljs.core.List(null,test,(new cljs.core.List(null,cljs.core.cons(new cljs.core.Symbol(null,"do","do",1686842252,null),body),null,(1),null)),(2),null)),(3),null));
}));

(sci.impl.namespaces.when_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.when_STAR_.cljs$lang$applyTo = (function (seq45107){
var G__45108 = cljs.core.first(seq45107);
var seq45107__$1 = cljs.core.next(seq45107);
var G__45109 = cljs.core.first(seq45107__$1);
var seq45107__$2 = cljs.core.next(seq45107__$1);
var G__45110 = cljs.core.first(seq45107__$2);
var seq45107__$3 = cljs.core.next(seq45107__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45108,G__45109,G__45110,seq45107__$3);
}));

/**
 * when-not from clojure.core
 */
sci.impl.namespaces.when_not_STAR_ = (function sci$impl$namespaces$when_not_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46402 = arguments.length;
var i__5750__auto___46403 = (0);
while(true){
if((i__5750__auto___46403 < len__5749__auto___46402)){
args__5755__auto__.push((arguments[i__5750__auto___46403]));

var G__46404 = (i__5750__auto___46403 + (1));
i__5750__auto___46403 = G__46404;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.when_not_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.when_not_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (__AMPERSAND_form,__AMPERSAND_env,test,body){
return (new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),(new cljs.core.List(null,test,(new cljs.core.List(null,null,(new cljs.core.List(null,cljs.core.cons(new cljs.core.Symbol(null,"do","do",1686842252,null),body),null,(1),null)),(2),null)),(3),null)),(4),null));
}));

(sci.impl.namespaces.when_not_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.when_not_STAR_.cljs$lang$applyTo = (function (seq45114){
var G__45115 = cljs.core.first(seq45114);
var seq45114__$1 = cljs.core.next(seq45114);
var G__45116 = cljs.core.first(seq45114__$1);
var seq45114__$2 = cljs.core.next(seq45114__$1);
var G__45117 = cljs.core.first(seq45114__$2);
var seq45114__$3 = cljs.core.next(seq45114__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45115,G__45116,G__45117,seq45114__$3);
}));

/**
 * doto from clojure.core
 */
sci.impl.namespaces.doto_STAR_ = (function sci$impl$namespaces$doto_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46405 = arguments.length;
var i__5750__auto___46406 = (0);
while(true){
if((i__5750__auto___46406 < len__5749__auto___46405)){
args__5755__auto__.push((arguments[i__5750__auto___46406]));

var G__46407 = (i__5750__auto___46406 + (1));
i__5750__auto___46406 = G__46407;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.doto_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.doto_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (__AMPERSAND_form,__AMPERSAND_env,x,forms){
var gx = cljs.core.gensym.cljs$core$IFn$_invoke$arity$0();
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,gx,null,(1),null)),(new cljs.core.List(null,x,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (f){
return cljs.core.with_meta(((cljs.core.seq_QMARK_(f))?cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,cljs.core.first(f),null,(1),null)),(new cljs.core.List(null,gx,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.next(f)], 0)))):cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,f,null,(1),null)),(new cljs.core.List(null,gx,null,(1),null)))))),cljs.core.meta(f));
}),forms),(new cljs.core.List(null,gx,null,(1),null))], 0))));
}));

(sci.impl.namespaces.doto_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.doto_STAR_.cljs$lang$applyTo = (function (seq45122){
var G__45123 = cljs.core.first(seq45122);
var seq45122__$1 = cljs.core.next(seq45122);
var G__45124 = cljs.core.first(seq45122__$1);
var seq45122__$2 = cljs.core.next(seq45122__$1);
var G__45125 = cljs.core.first(seq45122__$2);
var seq45122__$3 = cljs.core.next(seq45122__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45123,G__45124,G__45125,seq45122__$3);
}));

sci.impl.namespaces.cond_STAR_ = (function sci$impl$namespaces$cond_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46410 = arguments.length;
var i__5750__auto___46411 = (0);
while(true){
if((i__5750__auto___46411 < len__5749__auto___46410)){
args__5755__auto__.push((arguments[i__5750__auto___46411]));

var G__46412 = (i__5750__auto___46411 + (1));
i__5750__auto___46411 = G__46412;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.cond_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.cond_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,clauses){
if(cljs.core.truth_(clauses)){
return (new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),(new cljs.core.List(null,cljs.core.first(clauses),(new cljs.core.List(null,((cljs.core.next(clauses))?cljs.core.second(clauses):(function(){throw (new Error("cond requires an even number of forms"))})()),(new cljs.core.List(null,cljs.core.cons(new cljs.core.Symbol("clojure.core","cond","clojure.core/cond",1906951420,null),cljs.core.next(cljs.core.next(clauses))),null,(1),null)),(2),null)),(3),null)),(4),null));
} else {
return null;
}
}));

(sci.impl.namespaces.cond_STAR_.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.cond_STAR_.cljs$lang$applyTo = (function (seq45321){
var G__45322 = cljs.core.first(seq45321);
var seq45321__$1 = cljs.core.next(seq45321);
var G__45323 = cljs.core.first(seq45321__$1);
var seq45321__$2 = cljs.core.next(seq45321__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45322,G__45323,seq45321__$2);
}));

sci.impl.namespaces.cond__GT__STAR_ = (function sci$impl$namespaces$cond__GT__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46413 = arguments.length;
var i__5750__auto___46414 = (0);
while(true){
if((i__5750__auto___46414 < len__5749__auto___46413)){
args__5755__auto__.push((arguments[i__5750__auto___46414]));

var G__46415 = (i__5750__auto___46414 + (1));
i__5750__auto___46414 = G__46415;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.cond__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.cond__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (__AMPERSAND_form,__AMPERSAND_env,expr,clauses){
if(cljs.core.even_QMARK_(cljs.core.count(clauses))){
} else {
throw (new Error("Assert failed: (even? (count clauses))"));
}

var g = cljs.core.gensym.cljs$core$IFn$_invoke$arity$0();
var steps = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__45331){
var vec__45332 = p__45331;
var test = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45332,(0),null);
var step = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45332,(1),null);
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,test,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","->","cljs.core/->",1488366311,null),null,(1),null)),(new cljs.core.List(null,g,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,step,null,(1),null))], 0)))),null,(1),null)),(new cljs.core.List(null,g,null,(1),null))], 0))));
}),cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),clauses));
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,g,null,(1),null)),(new cljs.core.List(null,expr,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(g),cljs.core.butlast(steps))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,((cljs.core.empty_QMARK_(steps))?g:cljs.core.last(steps)),null,(1),null))], 0))));
}));

(sci.impl.namespaces.cond__GT__STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.cond__GT__STAR_.cljs$lang$applyTo = (function (seq45325){
var G__45326 = cljs.core.first(seq45325);
var seq45325__$1 = cljs.core.next(seq45325);
var G__45327 = cljs.core.first(seq45325__$1);
var seq45325__$2 = cljs.core.next(seq45325__$1);
var G__45328 = cljs.core.first(seq45325__$2);
var seq45325__$3 = cljs.core.next(seq45325__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45326,G__45327,G__45328,seq45325__$3);
}));

sci.impl.namespaces.cond__GT__GT__STAR_ = (function sci$impl$namespaces$cond__GT__GT__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46418 = arguments.length;
var i__5750__auto___46419 = (0);
while(true){
if((i__5750__auto___46419 < len__5749__auto___46418)){
args__5755__auto__.push((arguments[i__5750__auto___46419]));

var G__46420 = (i__5750__auto___46419 + (1));
i__5750__auto___46419 = G__46420;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.cond__GT__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.cond__GT__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (__AMPERSAND_form,__AMPERSAND_env,expr,clauses){
if(cljs.core.even_QMARK_(cljs.core.count(clauses))){
} else {
throw (new Error("Assert failed: (even? (count clauses))"));
}

var g = cljs.core.gensym.cljs$core$IFn$_invoke$arity$0();
var steps = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__45347){
var vec__45348 = p__45347;
var test = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45348,(0),null);
var step = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45348,(1),null);
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,test,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","->>","cljs.core/->>",-1207871206,null),null,(1),null)),(new cljs.core.List(null,g,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,step,null,(1),null))], 0)))),null,(1),null)),(new cljs.core.List(null,g,null,(1),null))], 0))));
}),cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),clauses));
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,g,null,(1),null)),(new cljs.core.List(null,expr,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(g),cljs.core.butlast(steps))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,((cljs.core.empty_QMARK_(steps))?g:cljs.core.last(steps)),null,(1),null))], 0))));
}));

(sci.impl.namespaces.cond__GT__GT__STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.cond__GT__GT__STAR_.cljs$lang$applyTo = (function (seq45340){
var G__45341 = cljs.core.first(seq45340);
var seq45340__$1 = cljs.core.next(seq45340);
var G__45342 = cljs.core.first(seq45340__$1);
var seq45340__$2 = cljs.core.next(seq45340__$1);
var G__45344 = cljs.core.first(seq45340__$2);
var seq45340__$3 = cljs.core.next(seq45340__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45341,G__45342,G__45344,seq45340__$3);
}));

sci.impl.namespaces.if_let_STAR_ = (function sci$impl$namespaces$if_let_STAR_(var_args){
var G__45359 = arguments.length;
switch (G__45359) {
case 4:
return sci.impl.namespaces.if_let_STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));

break;
default:
var args_arr__5774__auto__ = [];
var len__5749__auto___46423 = arguments.length;
var i__5750__auto___46424 = (0);
while(true){
if((i__5750__auto___46424 < len__5749__auto___46423)){
args_arr__5774__auto__.push((arguments[i__5750__auto___46424]));

var G__46425 = (i__5750__auto___46424 + (1));
i__5750__auto___46424 = G__46425;
continue;
} else {
}
break;
}

var argseq__5775__auto__ = ((((5) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((5)),(0),null)):null);
return sci.impl.namespaces.if_let_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5775__auto__);

}
});

(sci.impl.namespaces.if_let_STAR_.cljs$core$IFn$_invoke$arity$4 = (function (_AMPERSAND_form,_AMPERSAND_env,bindings,then){
return sci.impl.namespaces.if_let_STAR_(_AMPERSAND_form,_AMPERSAND_env,bindings,then,null);
}));

(sci.impl.namespaces.if_let_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_AMPERSAND_form,__AMPERSAND_env,bindings,then,else$,_oldform){
var form = (bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((0)) : bindings.call(null,(0)));
var tst = (bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((1)) : bindings.call(null,(1)));
var tmp = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("temp");
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,tmp,null,(1),null)),(new cljs.core.List(null,tst,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,tmp,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.with_meta(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,form,null,(1),null)),(new cljs.core.List(null,tmp,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,then,null,(1),null))], 0)))),cljs.core.meta(_AMPERSAND_form)),null,(1),null)),(new cljs.core.List(null,else$,null,(1),null))], 0)))),null,(1),null))], 0))));
}));

/** @this {Function} */
(sci.impl.namespaces.if_let_STAR_.cljs$lang$applyTo = (function (seq45353){
var G__45354 = cljs.core.first(seq45353);
var seq45353__$1 = cljs.core.next(seq45353);
var G__45355 = cljs.core.first(seq45353__$1);
var seq45353__$2 = cljs.core.next(seq45353__$1);
var G__45356 = cljs.core.first(seq45353__$2);
var seq45353__$3 = cljs.core.next(seq45353__$2);
var G__45357 = cljs.core.first(seq45353__$3);
var seq45353__$4 = cljs.core.next(seq45353__$3);
var G__45358 = cljs.core.first(seq45353__$4);
var seq45353__$5 = cljs.core.next(seq45353__$4);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45354,G__45355,G__45356,G__45357,G__45358,seq45353__$5);
}));

(sci.impl.namespaces.if_let_STAR_.cljs$lang$maxFixedArity = (5));

sci.impl.namespaces.if_some_STAR_ = (function sci$impl$namespaces$if_some_STAR_(var_args){
var G__45368 = arguments.length;
switch (G__45368) {
case 4:
return sci.impl.namespaces.if_some_STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));

break;
default:
var args_arr__5774__auto__ = [];
var len__5749__auto___46428 = arguments.length;
var i__5750__auto___46429 = (0);
while(true){
if((i__5750__auto___46429 < len__5749__auto___46428)){
args_arr__5774__auto__.push((arguments[i__5750__auto___46429]));

var G__46430 = (i__5750__auto___46429 + (1));
i__5750__auto___46429 = G__46430;
continue;
} else {
}
break;
}

var argseq__5775__auto__ = ((((5) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((5)),(0),null)):null);
return sci.impl.namespaces.if_some_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5775__auto__);

}
});

(sci.impl.namespaces.if_some_STAR_.cljs$core$IFn$_invoke$arity$4 = (function (_AMPERSAND_form,_AMPERSAND_env,bindings,then){
return sci.impl.namespaces.if_some_STAR_(_AMPERSAND_form,_AMPERSAND_env,bindings,then,null);
}));

(sci.impl.namespaces.if_some_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_AMPERSAND_form,__AMPERSAND_env,bindings,then,else$,_oldform){
var form = (bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((0)) : bindings.call(null,(0)));
var tst = (bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((1)) : bindings.call(null,(1)));
var tmp = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("temp");
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,tmp,null,(1),null)),(new cljs.core.List(null,tst,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","nil?","cljs.core/nil?",945071861,null),null,(1),null)),(new cljs.core.List(null,tmp,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,else$,null,(1),null)),(new cljs.core.List(null,cljs.core.with_meta(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,form,null,(1),null)),(new cljs.core.List(null,tmp,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,then,null,(1),null))], 0)))),cljs.core.meta(_AMPERSAND_form)),null,(1),null))], 0)))),null,(1),null))], 0))));
}));

/** @this {Function} */
(sci.impl.namespaces.if_some_STAR_.cljs$lang$applyTo = (function (seq45362){
var G__45363 = cljs.core.first(seq45362);
var seq45362__$1 = cljs.core.next(seq45362);
var G__45364 = cljs.core.first(seq45362__$1);
var seq45362__$2 = cljs.core.next(seq45362__$1);
var G__45365 = cljs.core.first(seq45362__$2);
var seq45362__$3 = cljs.core.next(seq45362__$2);
var G__45366 = cljs.core.first(seq45362__$3);
var seq45362__$4 = cljs.core.next(seq45362__$3);
var G__45367 = cljs.core.first(seq45362__$4);
var seq45362__$5 = cljs.core.next(seq45362__$4);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45363,G__45364,G__45365,G__45366,G__45367,seq45362__$5);
}));

(sci.impl.namespaces.if_some_STAR_.cljs$lang$maxFixedArity = (5));

sci.impl.namespaces.when_let_STAR_ = (function sci$impl$namespaces$when_let_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46433 = arguments.length;
var i__5750__auto___46434 = (0);
while(true){
if((i__5750__auto___46434 < len__5749__auto___46433)){
args__5755__auto__.push((arguments[i__5750__auto___46434]));

var G__46435 = (i__5750__auto___46434 + (1));
i__5750__auto___46434 = G__46435;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.when_let_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.when_let_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_AMPERSAND_form,__AMPERSAND_env,bindings,body){
var form = (bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((0)) : bindings.call(null,(0)));
var tst = (bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((1)) : bindings.call(null,(1)));
var tmp = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("temp");
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,tmp,null,(1),null)),(new cljs.core.List(null,tst,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","when","cljs.core/when",120293186,null),null,(1),null)),(new cljs.core.List(null,tmp,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.with_meta(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,form,null,(1),null)),(new cljs.core.List(null,tmp,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),cljs.core.meta(_AMPERSAND_form)),null,(1),null))], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.when_let_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.when_let_STAR_.cljs$lang$applyTo = (function (seq45369){
var G__45370 = cljs.core.first(seq45369);
var seq45369__$1 = cljs.core.next(seq45369);
var G__45371 = cljs.core.first(seq45369__$1);
var seq45369__$2 = cljs.core.next(seq45369__$1);
var G__45372 = cljs.core.first(seq45369__$2);
var seq45369__$3 = cljs.core.next(seq45369__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45370,G__45371,G__45372,seq45369__$3);
}));

sci.impl.namespaces.when_first_STAR_ = (function sci$impl$namespaces$when_first_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46439 = arguments.length;
var i__5750__auto___46440 = (0);
while(true){
if((i__5750__auto___46440 < len__5749__auto___46439)){
args__5755__auto__.push((arguments[i__5750__auto___46440]));

var G__46441 = (i__5750__auto___46440 + (1));
i__5750__auto___46440 = G__46441;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.when_first_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.when_first_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,bindings,body){
var vec__45388 = bindings;
var x = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45388,(0),null);
var xs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45388,(1),null);
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","when-let","cljs.core/when-let",-2049838349,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"xs__45379__auto__","xs__45379__auto__",1601030529,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","seq","cljs.core/seq",-1649497689,null),null,(1),null)),(new cljs.core.List(null,xs,null,(1),null))))),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,x,null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","first","cljs.core/first",-752535972,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"xs__45379__auto__","xs__45379__auto__",1601030529,null),null,(1),null))))),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.when_first_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.when_first_STAR_.cljs$lang$applyTo = (function (seq45380){
var G__45381 = cljs.core.first(seq45380);
var seq45380__$1 = cljs.core.next(seq45380);
var G__45382 = cljs.core.first(seq45380__$1);
var seq45380__$2 = cljs.core.next(seq45380__$1);
var G__45383 = cljs.core.first(seq45380__$2);
var seq45380__$3 = cljs.core.next(seq45380__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45381,G__45382,G__45383,seq45380__$3);
}));

sci.impl.namespaces.when_some_STAR_ = (function sci$impl$namespaces$when_some_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46445 = arguments.length;
var i__5750__auto___46446 = (0);
while(true){
if((i__5750__auto___46446 < len__5749__auto___46445)){
args__5755__auto__.push((arguments[i__5750__auto___46446]));

var G__46448 = (i__5750__auto___46446 + (1));
i__5750__auto___46446 = G__46448;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.when_some_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.when_some_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_AMPERSAND_form,_,bindings,body){
var form = (bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((0)) : bindings.call(null,(0)));
var tst = (bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((1)) : bindings.call(null,(1)));
var tmp = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("temp");
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,tmp,null,(1),null)),(new cljs.core.List(null,tst,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","nil?","cljs.core/nil?",945071861,null),null,(1),null)),(new cljs.core.List(null,tmp,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,null,null,(1),null)),(new cljs.core.List(null,cljs.core.with_meta(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,form,null,(1),null)),(new cljs.core.List(null,tmp,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),cljs.core.meta(_AMPERSAND_form)),null,(1),null))], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.when_some_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.when_some_STAR_.cljs$lang$applyTo = (function (seq45399){
var G__45400 = cljs.core.first(seq45399);
var seq45399__$1 = cljs.core.next(seq45399);
var G__45401 = cljs.core.first(seq45399__$1);
var seq45399__$2 = cljs.core.next(seq45399__$1);
var G__45402 = cljs.core.first(seq45399__$2);
var seq45399__$3 = cljs.core.next(seq45399__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45400,G__45401,G__45402,seq45399__$3);
}));

sci.impl.namespaces.some__GT__STAR_ = (function sci$impl$namespaces$some__GT__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46461 = arguments.length;
var i__5750__auto___46462 = (0);
while(true){
if((i__5750__auto___46462 < len__5749__auto___46461)){
args__5755__auto__.push((arguments[i__5750__auto___46462]));

var G__46463 = (i__5750__auto___46462 + (1));
i__5750__auto___46462 = G__46463;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.some__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.some__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (__AMPERSAND_form,__AMPERSAND_env,expr,forms){
var g = cljs.core.gensym.cljs$core$IFn$_invoke$arity$0();
var steps = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (step){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","nil?","cljs.core/nil?",945071861,null),null,(1),null)),(new cljs.core.List(null,g,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,null,null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","->","cljs.core/->",1488366311,null),null,(1),null)),(new cljs.core.List(null,g,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,step,null,(1),null))], 0)))),null,(1),null))], 0))));
}),forms);
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,g,null,(1),null)),(new cljs.core.List(null,expr,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(g),cljs.core.butlast(steps))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,((cljs.core.empty_QMARK_(steps))?g:cljs.core.last(steps)),null,(1),null))], 0))));
}));

(sci.impl.namespaces.some__GT__STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.some__GT__STAR_.cljs$lang$applyTo = (function (seq45408){
var G__45409 = cljs.core.first(seq45408);
var seq45408__$1 = cljs.core.next(seq45408);
var G__45410 = cljs.core.first(seq45408__$1);
var seq45408__$2 = cljs.core.next(seq45408__$1);
var G__45411 = cljs.core.first(seq45408__$2);
var seq45408__$3 = cljs.core.next(seq45408__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45409,G__45410,G__45411,seq45408__$3);
}));

sci.impl.namespaces.some__GT__GT__STAR_ = (function sci$impl$namespaces$some__GT__GT__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46466 = arguments.length;
var i__5750__auto___46467 = (0);
while(true){
if((i__5750__auto___46467 < len__5749__auto___46466)){
args__5755__auto__.push((arguments[i__5750__auto___46467]));

var G__46468 = (i__5750__auto___46467 + (1));
i__5750__auto___46467 = G__46468;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.some__GT__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.some__GT__GT__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,expr,forms){
var g = cljs.core.gensym.cljs$core$IFn$_invoke$arity$0();
var steps = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (step){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","nil?","cljs.core/nil?",945071861,null),null,(1),null)),(new cljs.core.List(null,g,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,null,null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","->>","cljs.core/->>",-1207871206,null),null,(1),null)),(new cljs.core.List(null,g,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,step,null,(1),null))], 0)))),null,(1),null))], 0))));
}),forms);
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,g,null,(1),null)),(new cljs.core.List(null,expr,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(g),cljs.core.butlast(steps))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,((cljs.core.empty_QMARK_(steps))?g:cljs.core.last(steps)),null,(1),null))], 0))));
}));

(sci.impl.namespaces.some__GT__GT__STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.some__GT__GT__STAR_.cljs$lang$applyTo = (function (seq45418){
var G__45419 = cljs.core.first(seq45418);
var seq45418__$1 = cljs.core.next(seq45418);
var G__45420 = cljs.core.first(seq45418__$1);
var seq45418__$2 = cljs.core.next(seq45418__$1);
var G__45421 = cljs.core.first(seq45418__$2);
var seq45418__$3 = cljs.core.next(seq45418__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45419,G__45420,G__45421,seq45418__$3);
}));

/**
 * defs the supplied var names with no bindings, useful for making forward declarations.
 */
sci.impl.namespaces.declare_STAR_ = (function sci$impl$namespaces$declare_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46473 = arguments.length;
var i__5750__auto___46474 = (0);
while(true){
if((i__5750__auto___46474 < len__5749__auto___46473)){
args__5755__auto__.push((arguments[i__5750__auto___46474]));

var G__46475 = (i__5750__auto___46474 + (1));
i__5750__auto___46474 = G__46475;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.declare_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.declare_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,names){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"do","do",1686842252,null),null,(1),null)),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__45428_SHARP_){
return (new cljs.core.List(null,new cljs.core.Symbol(null,"def","def",597100991,null),(new cljs.core.List(null,cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(p1__45428_SHARP_,cljs.core.assoc,new cljs.core.Keyword(null,"declared","declared",92336021),true),null,(1),null)),(2),null));
}),names))));
}));

(sci.impl.namespaces.declare_STAR_.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.declare_STAR_.cljs$lang$applyTo = (function (seq45430){
var G__45431 = cljs.core.first(seq45430);
var seq45430__$1 = cljs.core.next(seq45430);
var G__45432 = cljs.core.first(seq45430__$1);
var seq45430__$2 = cljs.core.next(seq45430__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45431,G__45432,seq45430__$2);
}));

sci.impl.namespaces.ex_message = (function (){var temp__5802__auto__ = (((typeof cljs !== 'undefined') && (typeof cljs.core !== 'undefined') && (typeof cljs.core.ex_message !== 'undefined'))?(new cljs.core.Var((function (){
return cljs.core.ex_message;
}),cljs.core.with_meta(new cljs.core.Symbol("cljs.core","ex-message","cljs.core/ex-message",-747602175,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.analyzer","no-resolve","cljs.analyzer/no-resolve",-1872351017),true], null)),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"ns","ns",441598760),new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Keyword(null,"file","file",-1269645878),new cljs.core.Keyword(null,"end-column","end-column",1425389514),new cljs.core.Keyword(null,"column","column",2078222095),new cljs.core.Keyword(null,"line","line",212345235),new cljs.core.Keyword(null,"end-line","end-line",1837326455),new cljs.core.Keyword(null,"arglists","arglists",1661989754),new cljs.core.Keyword(null,"doc","doc",1913296891),new cljs.core.Keyword(null,"test","test",577538877)],[new cljs.core.Symbol(null,"cljs.core","cljs.core",770546058,null),new cljs.core.Symbol(null,"ex-message","ex-message",-1128293394,null),"cljs/core.cljs",17,1,11822,11822,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"ex","ex",226760186,null)], null)),"Returns the message attached to the given Error / ExceptionInfo object.\n  For non-Errors returns nil.",(cljs.core.truth_(cljs.core.ex_message)?cljs.core.ex_message.cljs$lang$test:null)]))):null);
if(cljs.core.truth_(temp__5802__auto__)){
var v = temp__5802__auto__;
return cljs.core.deref(v);
} else {
return (function sci$impl$namespaces$ex_message(ex){
if((ex instanceof Error)){
return ex.message;
} else {
return null;
}
});
}
})();
sci.impl.namespaces.ex_cause = (function (){var temp__5802__auto__ = (((typeof cljs !== 'undefined') && (typeof cljs.core !== 'undefined') && (typeof cljs.core.ex_cause !== 'undefined'))?(new cljs.core.Var((function (){
return cljs.core.ex_cause;
}),cljs.core.with_meta(new cljs.core.Symbol("cljs.core","ex-cause","cljs.core/ex-cause",1843478517,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.analyzer","no-resolve","cljs.analyzer/no-resolve",-1872351017),true], null)),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"ns","ns",441598760),new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Keyword(null,"file","file",-1269645878),new cljs.core.Keyword(null,"end-column","end-column",1425389514),new cljs.core.Keyword(null,"column","column",2078222095),new cljs.core.Keyword(null,"line","line",212345235),new cljs.core.Keyword(null,"end-line","end-line",1837326455),new cljs.core.Keyword(null,"arglists","arglists",1661989754),new cljs.core.Keyword(null,"doc","doc",1913296891),new cljs.core.Keyword(null,"test","test",577538877)],[new cljs.core.Symbol(null,"cljs.core","cljs.core",770546058,null),new cljs.core.Symbol(null,"ex-cause","ex-cause",95392590,null),"cljs/core.cljs",15,1,11829,11829,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"ex","ex",226760186,null)], null)),"Returns exception cause (an Error / ExceptionInfo) if ex is an\n  ExceptionInfo.\n  Otherwise returns nil.",(cljs.core.truth_(cljs.core.ex_cause)?cljs.core.ex_cause.cljs$lang$test:null)]))):null);
if(cljs.core.truth_(temp__5802__auto__)){
var v = temp__5802__auto__;
return cljs.core.deref(v);
} else {
return (function sci$impl$namespaces$ex_message(ex){
if((ex instanceof cljs.core.ExceptionInfo)){
return ex.cause;
} else {
return null;
}
});
}
})();
sci.impl.namespaces.assert_var = sci.impl.utils.dynamic_var.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(null,"*assert*","*assert*",1479636474,null),true,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ns","ns",441598760),sci.impl.namespaces.clojure_core_ns], null));
sci.impl.namespaces.assert_STAR_ = (function sci$impl$namespaces$assert_STAR_(var_args){
var G__45443 = arguments.length;
switch (G__45443) {
case 3:
return sci.impl.namespaces.assert_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));

break;
case 4:
return sci.impl.namespaces.assert_STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));

break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));

}
});

(sci.impl.namespaces.assert_STAR_.cljs$core$IFn$_invoke$arity$3 = (function (__AMPERSAND_form,_,x){
if(cljs.core.truth_(cljs.core.deref(sci.impl.namespaces.assert_var))){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","when-not","cljs.core/when-not",-556141047,null),null,(1),null)),(new cljs.core.List(null,x,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"throw","throw",595905694,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("js","Error.","js/Error.",750655924,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","str","cljs.core/str",-1971828991,null),null,(1),null)),(new cljs.core.List(null,"Assert failed: ",null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","pr-str","cljs.core/pr-str",-552799478,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,x,null,(1),null))))),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))))),null,(1),null))))),null,(1),null))], 0))));
} else {
return null;
}
}));

(sci.impl.namespaces.assert_STAR_.cljs$core$IFn$_invoke$arity$4 = (function (__AMPERSAND_form,_,x,message){
if(cljs.core.truth_(cljs.core.deref(sci.impl.namespaces.assert_var))){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","when-not","cljs.core/when-not",-556141047,null),null,(1),null)),(new cljs.core.List(null,x,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"throw","throw",595905694,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("js","Error.","js/Error.",750655924,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","str","cljs.core/str",-1971828991,null),null,(1),null)),(new cljs.core.List(null,"Assert failed: ",null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,message,null,(1),null)),(new cljs.core.List(null,"\n",null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","pr-str","cljs.core/pr-str",-552799478,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,x,null,(1),null))))),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))))),null,(1),null))))),null,(1),null))], 0))));
} else {
return null;
}
}));

(sci.impl.namespaces.assert_STAR_.cljs$lang$maxFixedArity = 4);

sci.impl.namespaces.areduce_STAR_ = (function sci$impl$namespaces$areduce_STAR_(_,___$1,a,idx,ret,init,expr){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"a__45450__auto__","a__45450__auto__",1126925357,null),null,(1),null)),(new cljs.core.List(null,a,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Symbol(null,"l__45451__auto__","l__45451__auto__",-1193114042,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","alength","cljs.core/alength",-1012804190,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"a__45450__auto__","a__45450__auto__",1126925357,null),null,(1),null))))),null,(1),null))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","loop","cljs.core/loop",-1829423021,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,idx,null,(1),null)),(new cljs.core.List(null,(0),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,ret,null,(1),null)),(new cljs.core.List(null,init,null,(1),null))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","<","cljs.core/<",1677496129,null),null,(1),null)),(new cljs.core.List(null,idx,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Symbol(null,"l__45451__auto__","l__45451__auto__",-1193114042,null),null,(1),null))], 0)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"recur","recur",1202958259,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","unchecked-inc-int","cljs.core/unchecked-inc-int",-2007014592,null),null,(1),null)),(new cljs.core.List(null,idx,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,expr,null,(1),null))], 0)))),null,(1),null)),(new cljs.core.List(null,ret,null,(1),null))], 0)))),null,(1),null))], 0)))),null,(1),null))], 0))));
});
sci.impl.namespaces.amap_STAR_ = (function sci$impl$namespaces$amap_STAR_(_,___$1,a,idx,ret,expr){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"a__45457__auto__","a__45457__auto__",84294315,null),null,(1),null)),(new cljs.core.List(null,a,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Symbol(null,"l__45458__auto__","l__45458__auto__",923799993,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","alength","cljs.core/alength",-1012804190,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"a__45457__auto__","a__45457__auto__",84294315,null),null,(1),null))))),null,(1),null)),(new cljs.core.List(null,ret,null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","aclone","cljs.core/aclone",-758078968,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"a__45457__auto__","a__45457__auto__",84294315,null),null,(1),null))))),null,(1),null))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","loop","cljs.core/loop",-1829423021,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,idx,null,(1),null)),(new cljs.core.List(null,(0),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","<","cljs.core/<",1677496129,null),null,(1),null)),(new cljs.core.List(null,idx,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Symbol(null,"l__45458__auto__","l__45458__auto__",923799993,null),null,(1),null))], 0)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"do","do",1686842252,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","aset","cljs.core/aset",-898215545,null),null,(1),null)),(new cljs.core.List(null,ret,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,idx,null,(1),null)),(new cljs.core.List(null,expr,null,(1),null))], 0)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"recur","recur",1202958259,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","unchecked-inc","cljs.core/unchecked-inc",-501313167,null),null,(1),null)),(new cljs.core.List(null,idx,null,(1),null))))),null,(1),null))))),null,(1),null))], 0)))),null,(1),null)),(new cljs.core.List(null,ret,null,(1),null))], 0)))),null,(1),null))], 0)))),null,(1),null))], 0))));
});
sci.impl.namespaces.with_open_STAR_ = (function sci$impl$namespaces$with_open_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46506 = arguments.length;
var i__5750__auto___46507 = (0);
while(true){
if((i__5750__auto___46507 < len__5749__auto___46506)){
args__5755__auto__.push((arguments[i__5750__auto___46507]));

var G__46508 = (i__5750__auto___46507 + (1));
i__5750__auto___46507 = G__46508;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.with_open_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.with_open_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,bindings,body){
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),cljs.core.count(bindings))){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"do","do",1686842252,null),null,(1),null)),body)));
} else {
if(((bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((0)) : bindings.call(null,(0))) instanceof cljs.core.Symbol)){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(bindings,(0),(2)),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"try","try",-1273693247,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("sci.impl.namespaces","with-open","sci.impl.namespaces/with-open",-1695932508,null),null,(1),null)),(new cljs.core.List(null,cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(bindings,(2)),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"finally","finally",-1065347064,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,".close",".close",-1017758745,null),null,(1),null)),(new cljs.core.List(null,(bindings.cljs$core$IFn$_invoke$arity$1 ? bindings.cljs$core$IFn$_invoke$arity$1((0)) : bindings.call(null,(0))),null,(1),null))))),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))], 0))));
} else {
return new cljs.core.Keyword("sci.impl.namespaces","TODO","sci.impl.namespaces/TODO",-1842365958);

}
}
}));

(sci.impl.namespaces.with_open_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.with_open_STAR_.cljs$lang$applyTo = (function (seq45465){
var G__45466 = cljs.core.first(seq45465);
var seq45465__$1 = cljs.core.next(seq45465);
var G__45467 = cljs.core.first(seq45465__$1);
var seq45465__$2 = cljs.core.next(seq45465__$1);
var G__45468 = cljs.core.first(seq45465__$2);
var seq45465__$3 = cljs.core.next(seq45465__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45466,G__45467,G__45468,seq45465__$3);
}));

sci.impl.namespaces.letfn_STAR_ = (function sci$impl$namespaces$letfn_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46513 = arguments.length;
var i__5750__auto___46514 = (0);
while(true){
if((i__5750__auto___46514 < len__5749__auto___46513)){
args__5755__auto__.push((arguments[i__5750__auto___46514]));

var G__46516 = (i__5750__auto___46514 + (1));
i__5750__auto___46514 = G__46516;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.letfn_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.letfn_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,fnspecs,body){
var syms = cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,fnspecs);
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(syms,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(cljs.core.list(new cljs.core.Symbol("clojure.core","-new-var","clojure.core/-new-var",363339052,null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (sym,fn_spec){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","alter-var-root","cljs.core/alter-var-root",-1342668238,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","constantly","cljs.core/constantly",119002258,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.rest(fn_spec)], 0)))),null,(1),null))))),null,(1),null))], 0))));
}),syms,fnspecs),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(syms,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (sym){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","var-get","cljs.core/var-get",-91823622,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null)))));
}),syms))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.letfn_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.letfn_STAR_.cljs$lang$applyTo = (function (seq45478){
var G__45480 = cljs.core.first(seq45478);
var seq45478__$1 = cljs.core.next(seq45478);
var G__45481 = cljs.core.first(seq45478__$1);
var seq45478__$2 = cljs.core.next(seq45478__$1);
var G__45482 = cljs.core.first(seq45478__$2);
var seq45478__$3 = cljs.core.next(seq45478__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45480,G__45481,G__45482,seq45478__$3);
}));

sci.impl.namespaces.with_local_vars_STAR_ = (function sci$impl$namespaces$with_local_vars_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46521 = arguments.length;
var i__5750__auto___46522 = (0);
while(true){
if((i__5750__auto___46522 < len__5749__auto___46521)){
args__5755__auto__.push((arguments[i__5750__auto___46522]));

var G__46524 = (i__5750__auto___46522 + (1));
i__5750__auto___46522 = G__46524;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.with_local_vars_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.with_local_vars_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (form,_,name_vals_vec,body){
if(cljs.core.vector_QMARK_(name_vals_vec)){
} else {
sci.impl.utils.throw_error_with_location.cljs$core$IFn$_invoke$arity$2("with-local-vars requires a vector for its bindings",form);
}

if(cljs.core.even_QMARK_(cljs.core.count(name_vals_vec))){
} else {
sci.impl.utils.throw_error_with_location.cljs$core$IFn$_invoke$arity$2("with-local-vars requires an even number of forms in binding vector",form);
}

return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$1(cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),name_vals_vec),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(cljs.core.list(new cljs.core.Symbol("clojure.core","-new-dynamic-var","clojure.core/-new-dynamic-var",-1873937019,null)))))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","push-thread-bindings","cljs.core/push-thread-bindings",-703482450,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","hash-map","cljs.core/hash-map",303385767,null),null,(1),null)),name_vals_vec))),null,(1),null))))),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"try","try",-1273693247,null),null,(1),null)),body,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"finally","finally",-1065347064,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","pop-thread-bindings","cljs.core/pop-thread-bindings",-1994943347,null),null,(1),null))))),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.with_local_vars_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.with_local_vars_STAR_.cljs$lang$applyTo = (function (seq45489){
var G__45490 = cljs.core.first(seq45489);
var seq45489__$1 = cljs.core.next(seq45489);
var G__45491 = cljs.core.first(seq45489__$1);
var seq45489__$2 = cljs.core.next(seq45489__$1);
var G__45492 = cljs.core.first(seq45489__$2);
var seq45489__$3 = cljs.core.next(seq45489__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45490,G__45491,G__45492,seq45489__$3);
}));

/**
 * Non-atomically swaps the value of the volatile as if:
 * (apply f current-value-of-vol args). Returns the value that
 * was swapped in.
 */
sci.impl.namespaces.vswap_BANG_ = (function sci$impl$namespaces$vswap_BANG_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46528 = arguments.length;
var i__5750__auto___46529 = (0);
while(true){
if((i__5750__auto___46529 < len__5749__auto___46528)){
args__5755__auto__.push((arguments[i__5750__auto___46529]));

var G__46530 = (i__5750__auto___46529 + (1));
i__5750__auto___46529 = G__46530;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((4) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);
return sci.impl.namespaces.vswap_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);
});

(sci.impl.namespaces.vswap_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,vol,f,args){
var v = vol;
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","vreset!","cljs.core/vreset!",-1308835928,null),null,(1),null)),(new cljs.core.List(null,v,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,f,null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","deref","cljs.core/deref",1901963335,null),null,(1),null)),(new cljs.core.List(null,v,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([args], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.vswap_BANG_.cljs$lang$maxFixedArity = (4));

/** @this {Function} */
(sci.impl.namespaces.vswap_BANG_.cljs$lang$applyTo = (function (seq45512){
var G__45513 = cljs.core.first(seq45512);
var seq45512__$1 = cljs.core.next(seq45512);
var G__45514 = cljs.core.first(seq45512__$1);
var seq45512__$2 = cljs.core.next(seq45512__$1);
var G__45515 = cljs.core.first(seq45512__$2);
var seq45512__$3 = cljs.core.next(seq45512__$2);
var G__45516 = cljs.core.first(seq45512__$3);
var seq45512__$4 = cljs.core.next(seq45512__$3);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45513,G__45514,G__45515,G__45516,seq45512__$4);
}));

/**
 * Expands into code that creates a fn that expects to be passed an
 *   object and any args and calls the named instance method on the
 *   object passing the args. Use when you want to treat a JavaScript
 *   method as a first-class fn.
 */
sci.impl.namespaces.memfn = cljs.core.with_meta((function() { 
var sci$impl$namespaces$memfn__delegate = function (_,___$1,name,args){
var t = cljs.core.with_meta(cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("target"),cljs.core.meta(name));
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,t,null,(1),null)),args)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,".",".",1975675962,null),null,(1),null)),(new cljs.core.List(null,t,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,name,null,(1),null)),args))),null,(1),null))], 0)))),null,(1),null))], 0))));
};
var sci$impl$namespaces$memfn = function (_,___$1,name,var_args){
var args = null;
if (arguments.length > 3) {
var G__46535__i = 0, G__46535__a = new Array(arguments.length -  3);
while (G__46535__i < G__46535__a.length) {G__46535__a[G__46535__i] = arguments[G__46535__i + 3]; ++G__46535__i;}
  args = new cljs.core.IndexedSeq(G__46535__a,0,null);
} 
return sci$impl$namespaces$memfn__delegate.call(this,_,___$1,name,args);};
sci$impl$namespaces$memfn.cljs$lang$maxFixedArity = 3;
sci$impl$namespaces$memfn.cljs$lang$applyTo = (function (arglist__46537){
var _ = cljs.core.first(arglist__46537);
arglist__46537 = cljs.core.next(arglist__46537);
var ___$1 = cljs.core.first(arglist__46537);
arglist__46537 = cljs.core.next(arglist__46537);
var name = cljs.core.first(arglist__46537);
var args = cljs.core.rest(arglist__46537);
return sci$impl$namespaces$memfn__delegate(_,___$1,name,args);
});
sci$impl$namespaces$memfn.cljs$core$IFn$_invoke$arity$variadic = sci$impl$namespaces$memfn__delegate;
return sci$impl$namespaces$memfn;
})()
,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("sci","macro","sci/macro",-868536151),true], null));
sci.impl.namespaces.delay_STAR_ = (function sci$impl$namespaces$delay_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46538 = arguments.length;
var i__5750__auto___46540 = (0);
while(true){
if((i__5750__auto___46540 < len__5749__auto___46538)){
args__5755__auto__.push((arguments[i__5750__auto___46540]));

var G__46542 = (i__5750__auto___46540 + (1));
i__5750__auto___46540 = G__46542;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.delay_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.delay_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,body){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"new","new",-444906321,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol("cljs.core","Delay","cljs.core/Delay",-21574999,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$0()))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.delay_STAR_.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.delay_STAR_.cljs$lang$applyTo = (function (seq45539){
var G__45540 = cljs.core.first(seq45539);
var seq45539__$1 = cljs.core.next(seq45539);
var G__45541 = cljs.core.first(seq45539__$1);
var seq45539__$2 = cljs.core.next(seq45539__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45540,G__45541,seq45539__$2);
}));

sci.impl.namespaces.defn__STAR_ = (function sci$impl$namespaces$defn__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46544 = arguments.length;
var i__5750__auto___46545 = (0);
while(true){
if((i__5750__auto___46545 < len__5749__auto___46544)){
args__5755__auto__.push((arguments[i__5750__auto___46545]));

var G__46546 = (i__5750__auto___46545 + (1));
i__5750__auto___46545 = G__46546;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.defn__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.defn__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,name,decls){
return cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol("cljs.core","defn","cljs.core/defn",-1606493717,null),cljs.core.with_meta(name,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.meta(name),new cljs.core.Keyword(null,"private","private",-558947994),true)),decls);
}));

(sci.impl.namespaces.defn__STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.defn__STAR_.cljs$lang$applyTo = (function (seq45546){
var G__45547 = cljs.core.first(seq45546);
var seq45546__$1 = cljs.core.next(seq45546);
var G__45548 = cljs.core.first(seq45546__$1);
var seq45546__$2 = cljs.core.next(seq45546__$1);
var G__45549 = cljs.core.first(seq45546__$2);
var seq45546__$3 = cljs.core.next(seq45546__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45547,G__45548,G__45549,seq45546__$3);
}));

sci.impl.namespaces.condp_STAR_ = (function sci$impl$namespaces$condp_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46548 = arguments.length;
var i__5750__auto___46549 = (0);
while(true){
if((i__5750__auto___46549 < len__5749__auto___46548)){
args__5755__auto__.push((arguments[i__5750__auto___46549]));

var G__46550 = (i__5750__auto___46549 + (1));
i__5750__auto___46549 = G__46550;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((4) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);
return sci.impl.namespaces.condp_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);
});

(sci.impl.namespaces.condp_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,pred,expr,clauses){
var gpred = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("pred__");
var gexpr = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("expr__");
var emit = (function sci$impl$namespaces$emit(pred__$1,expr__$1,args){
var vec__45564 = cljs.core.split_at(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,">>",">>",-277509267),cljs.core.second(args)))?(3):(2)),args);
var vec__45567 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45564,(0),null);
var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45567,(0),null);
var b = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45567,(1),null);
var c = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45567,(2),null);
var clause = vec__45567;
var more = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45564,(1),null);
var n = cljs.core.count(clause);
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),n)){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"throw","throw",595905694,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"new","new",-444906321,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol("js","Error","js/Error",-1692659266,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","str","cljs.core/str",-1971828991,null),null,(1),null)),(new cljs.core.List(null,"No matching clause: ",null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,expr__$1,null,(1),null))], 0)))),null,(1),null))], 0)))),null,(1),null)))));
} else {
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),n)){
return a;
} else {
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((2),n)){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,pred__$1,null,(1),null)),(new cljs.core.List(null,a,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,expr__$1,null,(1),null))], 0)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,b,null,(1),null)),(new cljs.core.List(null,sci$impl$namespaces$emit(pred__$1,expr__$1,more),null,(1),null))], 0))));
} else {
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","if-let","cljs.core/if-let",1346583165,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"p__45555__auto__","p__45555__auto__",786902741,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,pred__$1,null,(1),null)),(new cljs.core.List(null,a,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,expr__$1,null,(1),null))], 0)))),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,c,null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"p__45555__auto__","p__45555__auto__",786902741,null),null,(1),null))))),null,(1),null)),(new cljs.core.List(null,sci$impl$namespaces$emit(pred__$1,expr__$1,more),null,(1),null))], 0))));

}
}
}
});
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,gpred,null,(1),null)),(new cljs.core.List(null,pred,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,gexpr,null,(1),null)),(new cljs.core.List(null,expr,null,(1),null))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,emit(gpred,gexpr,clauses),null,(1),null))], 0))));
}));

(sci.impl.namespaces.condp_STAR_.cljs$lang$maxFixedArity = (4));

/** @this {Function} */
(sci.impl.namespaces.condp_STAR_.cljs$lang$applyTo = (function (seq45557){
var G__45558 = cljs.core.first(seq45557);
var seq45557__$1 = cljs.core.next(seq45557);
var G__45559 = cljs.core.first(seq45557__$1);
var seq45557__$2 = cljs.core.next(seq45557__$1);
var G__45560 = cljs.core.first(seq45557__$2);
var seq45557__$3 = cljs.core.next(seq45557__$2);
var G__45561 = cljs.core.first(seq45557__$3);
var seq45557__$4 = cljs.core.next(seq45557__$3);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45558,G__45559,G__45560,G__45561,seq45557__$4);
}));

sci.impl.namespaces.defonce_STAR_ = (function sci$impl$namespaces$defonce_STAR_(_,___$1,name,expr){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"v__45587__auto__","v__45587__auto__",308719949,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"def","def",597100991,null),null,(1),null)),(new cljs.core.List(null,name,null,(1),null))))),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","when-not","cljs.core/when-not",-556141047,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"has-root-impl","has-root-impl",-288948659,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"v__45587__auto__","v__45587__auto__",308719949,null),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"def","def",597100991,null),null,(1),null)),(new cljs.core.List(null,name,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,expr,null,(1),null))], 0)))),null,(1),null))], 0)))),null,(1),null))], 0))));
});
sci.impl.namespaces.while_STAR_ = (function sci$impl$namespaces$while_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46557 = arguments.length;
var i__5750__auto___46558 = (0);
while(true){
if((i__5750__auto___46558 < len__5749__auto___46557)){
args__5755__auto__.push((arguments[i__5750__auto___46558]));

var G__46559 = (i__5750__auto___46558 + (1));
i__5750__auto___46558 = G__46559;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.while_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.while_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,test,body){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","loop","cljs.core/loop",-1829423021,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$0()))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","when","cljs.core/when",120293186,null),null,(1),null)),(new cljs.core.List(null,test,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body,(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,new cljs.core.Symbol(null,"recur","recur",1202958259,null),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.while_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.while_STAR_.cljs$lang$applyTo = (function (seq45598){
var G__45599 = cljs.core.first(seq45598);
var seq45598__$1 = cljs.core.next(seq45598);
var G__45600 = cljs.core.first(seq45598__$1);
var seq45598__$2 = cljs.core.next(seq45598__$1);
var G__45601 = cljs.core.first(seq45598__$2);
var seq45598__$3 = cljs.core.next(seq45598__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45599,G__45600,G__45601,seq45598__$3);
}));

sci.impl.namespaces.double_dot = (function sci$impl$namespaces$double_dot(var_args){
var G__45612 = arguments.length;
switch (G__45612) {
case 4:
return sci.impl.namespaces.double_dot.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));

break;
default:
var args_arr__5774__auto__ = [];
var len__5749__auto___46562 = arguments.length;
var i__5750__auto___46563 = (0);
while(true){
if((i__5750__auto___46563 < len__5749__auto___46562)){
args_arr__5774__auto__.push((arguments[i__5750__auto___46563]));

var G__46564 = (i__5750__auto___46563 + (1));
i__5750__auto___46563 = G__46564;
continue;
} else {
}
break;
}

var argseq__5775__auto__ = ((((4) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((4)),(0),null)):null);
return sci.impl.namespaces.double_dot.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5775__auto__);

}
});

(sci.impl.namespaces.double_dot.cljs$core$IFn$_invoke$arity$4 = (function (_,___$1,x,form){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,".",".",1975675962,null),null,(1),null)),(new cljs.core.List(null,x,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,form,null,(1),null))], 0))));
}));

(sci.impl.namespaces.double_dot.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,x,form,more){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"..","..",-300507420,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,".",".",1975675962,null),null,(1),null)),(new cljs.core.List(null,x,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,form,null,(1),null))], 0)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([more], 0))));
}));

/** @this {Function} */
(sci.impl.namespaces.double_dot.cljs$lang$applyTo = (function (seq45607){
var G__45608 = cljs.core.first(seq45607);
var seq45607__$1 = cljs.core.next(seq45607);
var G__45609 = cljs.core.first(seq45607__$1);
var seq45607__$2 = cljs.core.next(seq45607__$1);
var G__45610 = cljs.core.first(seq45607__$2);
var seq45607__$3 = cljs.core.next(seq45607__$2);
var G__45611 = cljs.core.first(seq45607__$3);
var seq45607__$4 = cljs.core.next(seq45607__$3);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45608,G__45609,G__45610,G__45611,seq45607__$4);
}));

(sci.impl.namespaces.double_dot.cljs$lang$maxFixedArity = (4));

sci.impl.namespaces.lazy_cat_STAR_ = (function sci$impl$namespaces$lazy_cat_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46567 = arguments.length;
var i__5750__auto___46568 = (0);
while(true){
if((i__5750__auto___46568 < len__5749__auto___46567)){
args__5755__auto__.push((arguments[i__5750__auto___46568]));

var G__46570 = (i__5750__auto___46568 + (1));
i__5750__auto___46568 = G__46570;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.lazy_cat_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.lazy_cat_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,colls){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","concat","cljs.core/concat",-1133584918,null),null,(1),null)),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__45621_SHARP_){
return (new cljs.core.List(null,new cljs.core.Symbol("cljs.core","lazy-seq","cljs.core/lazy-seq",627681297,null),(new cljs.core.List(null,p1__45621_SHARP_,null,(1),null)),(2),null));
}),colls))));
}));

(sci.impl.namespaces.lazy_cat_STAR_.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.lazy_cat_STAR_.cljs$lang$applyTo = (function (seq45622){
var G__45623 = cljs.core.first(seq45622);
var seq45622__$1 = cljs.core.next(seq45622);
var G__45624 = cljs.core.first(seq45622__$1);
var seq45622__$2 = cljs.core.next(seq45622__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45623,G__45624,seq45622__$2);
}));

sci.impl.namespaces.has_root_impl = (function sci$impl$namespaces$has_root_impl(sci_var){
return sci.impl.vars.hasRoot(sci_var);
});
sci.impl.namespaces.sci_alias = (function sci$impl$namespaces$sci_alias(alias_sym,ns_sym){
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(sci.ctx_store.get_ctx()),(function (env){
var current_ns = sci.impl.utils.current_ns_name();
return cljs.core.assoc_in(env,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),current_ns,new cljs.core.Keyword(null,"aliases","aliases",1346874714),alias_sym], null),ns_sym);
}));

return null;
});
sci.impl.namespaces.sci_create_ns = (function sci$impl$namespaces$sci_create_ns(ns_sym){
return sci.impl.utils.namespace_object(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(sci.ctx_store.get_ctx()),ns_sym,true,null);
});
sci.impl.namespaces.sci_find_ns_STAR_ = (function sci$impl$namespaces$sci_find_ns_STAR_(ctx,ns_sym){
if((ns_sym instanceof cljs.core.Symbol)){
} else {
throw (new Error("Assert failed: (symbol? ns-sym)"));
}

return sci.impl.utils.namespace_object(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx),ns_sym,false,null);
});
sci.impl.namespaces.sci_find_ns = (function sci$impl$namespaces$sci_find_ns(ns_sym){
return sci.impl.namespaces.sci_find_ns_STAR_(sci.ctx_store.get_ctx(),ns_sym);
});
sci.impl.namespaces.sci_in_ns = (function sci$impl$namespaces$sci_in_ns(ns_sym){
if((ns_sym instanceof cljs.core.Symbol)){
} else {
throw (new Error("Assert failed: (symbol? ns-sym)"));
}

return sci.impl.utils.set_namespace_BANG_(sci.ctx_store.get_ctx(),ns_sym,cljs.core.PersistentArrayMap.EMPTY);
});
sci.impl.namespaces.sci_the_ns_STAR_ = (function sci$impl$namespaces$sci_the_ns_STAR_(ctx,x){
if((x instanceof sci.lang.Namespace)){
return x;
} else {
var or__5025__auto__ = sci.impl.namespaces.sci_find_ns_STAR_(ctx,x);
if(cljs.core.truth_(or__5025__auto__)){
return or__5025__auto__;
} else {
throw (new Error(["No namespace: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(x)," found"].join('')));
}
}
});
sci.impl.namespaces.sci_the_ns = (function sci$impl$namespaces$sci_the_ns(x){
var ctx = sci.ctx_store.get_ctx();
return sci.impl.namespaces.sci_the_ns_STAR_(ctx,x);
});
sci.impl.namespaces.sci_ns_name_STAR_ = (function sci$impl$namespaces$sci_ns_name_STAR_(ctx,ns){
var ns__$1 = sci.impl.namespaces.sci_the_ns_STAR_(ctx,ns);
return ns__$1.sci$impl$types$HasName$getName$arity$1(null);
});
sci.impl.namespaces.sci_ns_name = (function sci$impl$namespaces$sci_ns_name(ns){
var ctx = sci.ctx_store.get_ctx();
return sci.impl.namespaces.sci_ns_name_STAR_(ctx,ns);
});
sci.impl.namespaces.sci_ns_aliases_STAR_ = (function sci$impl$namespaces$sci_ns_aliases_STAR_(ctx,sci_ns){
var name = sci.impl.namespaces.sci_ns_name_STAR_(ctx,sci_ns);
var aliases = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx)),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),name,new cljs.core.Keyword(null,"aliases","aliases",1346874714)], null));
return cljs.core.zipmap(cljs.core.keys(aliases),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (sym){
return sci.lang.__GT_Namespace(sym,null);
}),cljs.core.vals(aliases)));
});
sci.impl.namespaces.sci_ns_aliases = (function sci$impl$namespaces$sci_ns_aliases(sci_ns){
var ctx = sci.ctx_store.get_ctx();
return sci.impl.namespaces.sci_ns_aliases_STAR_(ctx,sci_ns);
});
sci.impl.namespaces.clean_ns = (function sci$impl$namespaces$clean_ns(m){
return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,"aliases","aliases",1346874714),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"imports","imports",-1249933394),new cljs.core.Keyword(null,"obj","obj",981763962),new cljs.core.Keyword(null,"refer","refer",-964295553),new cljs.core.Keyword(null,"refers","refers",158076809)], 0));
});
sci.impl.namespaces.sci_ns_interns_STAR_ = (function sci$impl$namespaces$sci_ns_interns_STAR_(ctx,sci_ns){
var name = sci.impl.namespaces.sci_ns_name_STAR_(ctx,sci_ns);
var m = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),name], null));
var m__$1 = sci.impl.namespaces.clean_ns(m);
return m__$1;
});
sci.impl.namespaces.sci_ns_interns = (function sci$impl$namespaces$sci_ns_interns(sci_ns){
var ctx = sci.ctx_store.get_ctx();
return sci.impl.namespaces.sci_ns_interns_STAR_(ctx,sci_ns);
});
sci.impl.namespaces.sci_ns_publics_STAR_ = (function sci$impl$namespaces$sci_ns_publics_STAR_(ctx,sci_ns){
var name = sci.impl.namespaces.sci_ns_name_STAR_(ctx,sci_ns);
var m = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),name], null));
var m__$1 = sci.impl.namespaces.clean_ns(m);
return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.keep.cljs$core$IFn$_invoke$arity$2((function (p__45681){
var vec__45683 = p__45681;
var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45683,(0),null);
var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45683,(1),null);
if(cljs.core.truth_(new cljs.core.Keyword(null,"private","private",-558947994).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(v)))){
return null;
} else {
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v], null);
}
}),m__$1));
});
sci.impl.namespaces.sci_ns_publics = (function sci$impl$namespaces$sci_ns_publics(sci_ns){
var ctx = sci.ctx_store.get_ctx();
return sci.impl.namespaces.sci_ns_publics_STAR_(ctx,sci_ns);
});
sci.impl.namespaces.sci_ns_imports_STAR_ = (function sci$impl$namespaces$sci_ns_imports_STAR_(ctx,sci_ns){
var name = sci.impl.namespaces.sci_ns_name_STAR_(ctx,sci_ns);
var env = cljs.core.deref(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx));
var global_imports = new cljs.core.Keyword(null,"imports","imports",-1249933394).cljs$core$IFn$_invoke$arity$1(env);
var namespace_imports = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),name,new cljs.core.Keyword(null,"imports","imports",-1249933394)], null));
var class_opts = new cljs.core.Keyword(null,"class->opts","class->opts",2061906477).cljs$core$IFn$_invoke$arity$1(env);
var all_aliased = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.keys(global_imports),cljs.core.keys(namespace_imports));
var all_imports = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.vals(global_imports),cljs.core.vals(namespace_imports));
return cljs.core.zipmap(all_aliased,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"class","class",-2030961996),(function (p1__45690_SHARP_){
return cljs.core.get.cljs$core$IFn$_invoke$arity$2(class_opts,p1__45690_SHARP_);
})),all_imports));
});
sci.impl.namespaces.sci_ns_imports = (function sci$impl$namespaces$sci_ns_imports(sci_ns){
var ctx = sci.ctx_store.get_ctx();
return sci.impl.namespaces.sci_ns_imports_STAR_(ctx,sci_ns);
});
sci.impl.namespaces.sci_ns_refers_STAR_ = (function sci$impl$namespaces$sci_ns_refers_STAR_(ctx,sci_ns){
var name = sci.impl.namespaces.sci_ns_name_STAR_(ctx,sci_ns);
var env = cljs.core.deref(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx));
var refers = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),name,new cljs.core.Keyword(null,"refers","refers",158076809)], null));
var clojure_core = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),new cljs.core.Symbol(null,"clojure.core","clojure.core",-189332625,null)], null));
var clojure_core__$1 = sci.impl.namespaces.clean_ns(clojure_core);
return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([clojure_core__$1,refers], 0));
});
sci.impl.namespaces.sci_ns_refers = (function sci$impl$namespaces$sci_ns_refers(sci_ns){
var ctx = sci.ctx_store.get_ctx();
return sci.impl.namespaces.sci_ns_refers_STAR_(ctx,sci_ns);
});
sci.impl.namespaces.sci_ns_map = (function sci$impl$namespaces$sci_ns_map(sci_ns){
var ctx = sci.ctx_store.get_ctx();
return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sci.impl.namespaces.sci_ns_interns_STAR_(ctx,sci_ns),sci.impl.namespaces.sci_ns_refers_STAR_(ctx,sci_ns),sci.impl.namespaces.sci_ns_imports_STAR_(ctx,sci_ns)], 0));
});
sci.impl.namespaces.sci_ns_unmap = (function sci$impl$namespaces$sci_ns_unmap(sci_ns,sym){
var ctx_46577 = sci.ctx_store.get_ctx();
if((sym instanceof cljs.core.Symbol)){
} else {
throw (new Error("Assert failed: (symbol? sym)"));
}

cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx_46577),(function (env){
var name = sci.impl.namespaces.sci_ns_name_STAR_(ctx_46577,sci_ns);
return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),name], null),(function (the_ns_map){
if(cljs.core.contains_QMARK_(new cljs.core.Keyword(null,"refers","refers",158076809).cljs$core$IFn$_invoke$arity$1(the_ns_map),sym)){
return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.update.cljs$core$IFn$_invoke$arity$4(the_ns_map,new cljs.core.Keyword(null,"refers","refers",158076809),cljs.core.dissoc,sym),the_ns_map,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym], 0));
} else {
if(cljs.core.contains_QMARK_(the_ns_map,sym)){
return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(the_ns_map,sym);
} else {
if(((cljs.core.contains_QMARK_(new cljs.core.Keyword(null,"imports","imports",-1249933394).cljs$core$IFn$_invoke$arity$1(env),sym)) || (cljs.core.contains_QMARK_(new cljs.core.Keyword(null,"imports","imports",-1249933394).cljs$core$IFn$_invoke$arity$1(the_ns_map),sym)))){
return cljs.core.update.cljs$core$IFn$_invoke$arity$5(the_ns_map,new cljs.core.Keyword(null,"imports","imports",-1249933394),cljs.core.assoc,sym,null);
} else {
return the_ns_map;

}
}
}
}));
}));

return null;
});
sci.impl.namespaces.sci_ns_unalias = (function sci$impl$namespaces$sci_ns_unalias(sci_ns,sym){
var ctx = sci.ctx_store.get_ctx();
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx),(function (env){
return cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(env,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),sci.impl.namespaces.sci_ns_name_STAR_(ctx,sci_ns),new cljs.core.Keyword(null,"aliases","aliases",1346874714)], null),cljs.core.dissoc,sym);
}));

return null;
});
sci.impl.namespaces.sci_all_ns = (function sci$impl$namespaces$sci_all_ns(){
var env = new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(sci.ctx_store.get_ctx());
var namespaces = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(env),new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469));
var public$ = cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__45715){
var vec__45716 = p__45715;
var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45716,(0),null);
var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45716,(1),null);
return new cljs.core.Keyword(null,"private","private",-558947994).cljs$core$IFn$_invoke$arity$1(v);
}),namespaces);
return cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__45713_SHARP_){
return sci.impl.utils.namespace_object(env,p1__45713_SHARP_,true,null);
}),cljs.core.keys(public$));
});
sci.impl.namespaces.sci_remove_ns = (function sci$impl$namespaces$sci_remove_ns(sym){
var ctx = sci.ctx_store.get_ctx();
var env = new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx);
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(env,cljs.core.update,new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sym], 0));

return null;
});
sci.impl.namespaces.sci_intern = (function sci$impl$namespaces$sci_intern(var_args){
var G__45723 = arguments.length;
switch (G__45723) {
case 2:
return sci.impl.namespaces.sci_intern.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
case 3:
return sci.impl.namespaces.sci_intern.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));

break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));

}
});

(sci.impl.namespaces.sci_intern.cljs$core$IFn$_invoke$arity$2 = (function (ns,var_sym){
var ctx = sci.ctx_store.get_ctx();
var ns__$1 = sci.impl.namespaces.sci_the_ns_STAR_(ctx,ns);
var ns_name = sci.impl.types.getName(ns__$1);
var env = new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx);
var or__5025__auto__ = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(env),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),ns_name,var_sym], null));
if(cljs.core.truth_(or__5025__auto__)){
return or__5025__auto__;
} else {
var var_name = cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),cljs.core.str.cljs$core$IFn$_invoke$arity$1(var_sym));
var new_var = sci.impl.utils.new_var.cljs$core$IFn$_invoke$arity$3(var_name,null,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.meta(var_sym),new cljs.core.Keyword(null,"ns","ns",441598760),ns__$1));
new_var.sci$impl$vars$IVar$unbind$arity$1(null);

cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(env,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),ns_name,var_sym], null),new_var);

return new_var;
}
}));

(sci.impl.namespaces.sci_intern.cljs$core$IFn$_invoke$arity$3 = (function (ns,var_sym,val){
var ctx = sci.ctx_store.get_ctx();
var ns__$1 = sci.impl.namespaces.sci_the_ns_STAR_(ctx,ns);
var ns_name = sci.impl.types.getName(ns__$1);
var env = new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx);
var or__5025__auto__ = (function (){var temp__5804__auto__ = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(env),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),ns_name,var_sym], null));
if(cljs.core.truth_(temp__5804__auto__)){
var v = temp__5804__auto__;
sci.impl.vars.bindRoot(v,val);

return v;
} else {
return null;
}
})();
if(cljs.core.truth_(or__5025__auto__)){
return or__5025__auto__;
} else {
var var_name = cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns_name),cljs.core.str.cljs$core$IFn$_invoke$arity$1(var_sym));
var new_var = sci.impl.utils.new_var.cljs$core$IFn$_invoke$arity$3(var_name,val,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.meta(var_sym),new cljs.core.Keyword(null,"ns","ns",441598760),ns__$1));
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(env,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),ns_name,var_sym], null),new_var);

return new_var;
}
}));

(sci.impl.namespaces.sci_intern.cljs$lang$maxFixedArity = 3);

sci.impl.namespaces.sci_bound_QMARK_ = (function sci$impl$namespaces$sci_bound_QMARK_(sci_var){
var or__5025__auto__ = sci.impl.vars.hasRoot(sci_var);
if(cljs.core.truth_(or__5025__auto__)){
return or__5025__auto__;
} else {
return (((!((sci.impl.vars.get_thread_binding(sci_var) == null)))) || (false));
}
});
sci.impl.namespaces.require_STAR_ = (function sci$impl$namespaces$require_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46583 = arguments.length;
var i__5750__auto___46584 = (0);
while(true){
if((i__5750__auto___46584 < len__5749__auto___46583)){
args__5755__auto__.push((arguments[i__5750__auto___46584]));

var G__46585 = (i__5750__auto___46584 + (1));
i__5750__auto___46584 = G__46585;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);
return sci.impl.namespaces.require_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);
});

(sci.impl.namespaces.require_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (sci_ctx,args){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(sci.impl.load.eval_require,sci_ctx,args);
}));

(sci.impl.namespaces.require_STAR_.cljs$lang$maxFixedArity = (1));

/** @this {Function} */
(sci.impl.namespaces.require_STAR_.cljs$lang$applyTo = (function (seq45735){
var G__45736 = cljs.core.first(seq45735);
var seq45735__$1 = cljs.core.next(seq45735);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45736,seq45735__$1);
}));

sci.impl.namespaces.require = (function sci$impl$namespaces$require(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46587 = arguments.length;
var i__5750__auto___46588 = (0);
while(true){
if((i__5750__auto___46588 < len__5749__auto___46587)){
args__5755__auto__.push((arguments[i__5750__auto___46588]));

var G__46589 = (i__5750__auto___46588 + (1));
i__5750__auto___46588 = G__46589;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((0) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);
return sci.impl.namespaces.require.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);
});

(sci.impl.namespaces.require.cljs$core$IFn$_invoke$arity$variadic = (function (args){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(sci.impl.namespaces.require_STAR_,sci.ctx_store.get_ctx(),args);
}));

(sci.impl.namespaces.require.cljs$lang$maxFixedArity = (0));

/** @this {Function} */
(sci.impl.namespaces.require.cljs$lang$applyTo = (function (seq45743){
var self__5735__auto__ = this;
return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq45743));
}));

sci.impl.namespaces.use = (function sci$impl$namespaces$use(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46591 = arguments.length;
var i__5750__auto___46592 = (0);
while(true){
if((i__5750__auto___46592 < len__5749__auto___46591)){
args__5755__auto__.push((arguments[i__5750__auto___46592]));

var G__46593 = (i__5750__auto___46592 + (1));
i__5750__auto___46592 = G__46593;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((0) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);
return sci.impl.namespaces.use.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);
});

(sci.impl.namespaces.use.cljs$core$IFn$_invoke$arity$variadic = (function (args){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(sci.impl.load.eval_use,sci.ctx_store.get_ctx(),args);
}));

(sci.impl.namespaces.use.cljs$lang$maxFixedArity = (0));

/** @this {Function} */
(sci.impl.namespaces.use.cljs$lang$applyTo = (function (seq45748){
var self__5735__auto__ = this;
return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq45748));
}));

sci.impl.namespaces.sci_resolve_STAR_ = (function sci$impl$namespaces$sci_resolve_STAR_(var_args){
var G__45760 = arguments.length;
switch (G__45760) {
case 2:
return sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
case 3:
return sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));

break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));

}
});

(sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$2 = (function (sci_ctx,sym){
var G__45767 = sci_ctx;
var G__45768 = new cljs.core.Keyword(null,"bindings","bindings",1271397192).cljs$core$IFn$_invoke$arity$1(sci_ctx);
var G__45769 = sym;
var fexpr__45766 = cljs.core.deref(sci.impl.utils.eval_resolve_state);
return (fexpr__45766.cljs$core$IFn$_invoke$arity$3 ? fexpr__45766.cljs$core$IFn$_invoke$arity$3(G__45767,G__45768,G__45769) : fexpr__45766.call(null,G__45767,G__45768,G__45769));
}));

(sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$3 = (function (sci_ctx,env,sym){
var G__45773 = sci_ctx;
var G__45774 = new cljs.core.Keyword(null,"bindings","bindings",1271397192).cljs$core$IFn$_invoke$arity$1(sci_ctx);
var G__45775 = env;
var G__45776 = sym;
var fexpr__45771 = cljs.core.deref(sci.impl.utils.eval_resolve_state);
return (fexpr__45771.cljs$core$IFn$_invoke$arity$4 ? fexpr__45771.cljs$core$IFn$_invoke$arity$4(G__45773,G__45774,G__45775,G__45776) : fexpr__45771.call(null,G__45773,G__45774,G__45775,G__45776));
}));

(sci.impl.namespaces.sci_resolve_STAR_.cljs$lang$maxFixedArity = 3);

sci.impl.namespaces.sci_resolve = (function sci$impl$namespaces$sci_resolve(var_args){
var G__45783 = arguments.length;
switch (G__45783) {
case 1:
return sci.impl.namespaces.sci_resolve.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));

break;
case 2:
return sci.impl.namespaces.sci_resolve.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));

}
});

(sci.impl.namespaces.sci_resolve.cljs$core$IFn$_invoke$arity$1 = (function (sym){
return sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$2(sci.ctx_store.get_ctx(),sym);
}));

(sci.impl.namespaces.sci_resolve.cljs$core$IFn$_invoke$arity$2 = (function (env,sym){
return sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$3(sci.ctx_store.get_ctx(),env,sym);
}));

(sci.impl.namespaces.sci_resolve.cljs$lang$maxFixedArity = 2);

sci.impl.namespaces.sci_refer = (function sci$impl$namespaces$sci_refer(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46597 = arguments.length;
var i__5750__auto___46598 = (0);
while(true){
if((i__5750__auto___46598 < len__5749__auto___46597)){
args__5755__auto__.push((arguments[i__5750__auto___46598]));

var G__46599 = (i__5750__auto___46598 + (1));
i__5750__auto___46598 = G__46599;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((0) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);
return sci.impl.namespaces.sci_refer.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);
});

(sci.impl.namespaces.sci_refer.cljs$core$IFn$_invoke$arity$variadic = (function (args){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(sci.impl.load.eval_refer,sci.ctx_store.get_ctx(),args);
}));

(sci.impl.namespaces.sci_refer.cljs$lang$maxFixedArity = (0));

/** @this {Function} */
(sci.impl.namespaces.sci_refer.cljs$lang$applyTo = (function (seq45788){
var self__5735__auto__ = this;
return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq45788));
}));

sci.impl.namespaces.sci_refer_clojure = (function sci$impl$namespaces$sci_refer_clojure(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46601 = arguments.length;
var i__5750__auto___46602 = (0);
while(true){
if((i__5750__auto___46602 < len__5749__auto___46601)){
args__5755__auto__.push((arguments[i__5750__auto___46602]));

var G__46603 = (i__5750__auto___46602 + (1));
i__5750__auto___46602 = G__46603;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.sci_refer_clojure.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.sci_refer_clojure.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,filters){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","refer","cljs.core/refer",269577817,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"clojure.core","clojure.core",-189332625,null),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([filters], 0))));
}));

(sci.impl.namespaces.sci_refer_clojure.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.sci_refer_clojure.cljs$lang$applyTo = (function (seq45797){
var G__45798 = cljs.core.first(seq45797);
var seq45797__$1 = cljs.core.next(seq45797);
var G__45799 = cljs.core.first(seq45797__$1);
var seq45797__$2 = cljs.core.next(seq45797__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45798,G__45799,seq45797__$2);
}));

sci.impl.namespaces.sci_ns_resolve = (function sci$impl$namespaces$sci_ns_resolve(var_args){
var G__45813 = arguments.length;
switch (G__45813) {
case 2:
return sci.impl.namespaces.sci_ns_resolve.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
case 3:
return sci.impl.namespaces.sci_ns_resolve.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));

break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));

}
});

(sci.impl.namespaces.sci_ns_resolve.cljs$core$IFn$_invoke$arity$2 = (function (ns,sym){
var ctx = sci.ctx_store.get_ctx();
sci.impl.vars.push_thread_bindings(cljs.core.PersistentArrayMap.createAsIfByAssoc([sci.impl.utils.current_ns,sci.impl.namespaces.sci_the_ns_STAR_(ctx,ns)]));

try{return sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$2(ctx,sym);
}finally {sci.impl.vars.pop_thread_bindings();
}}));

(sci.impl.namespaces.sci_ns_resolve.cljs$core$IFn$_invoke$arity$3 = (function (ns,env,sym){
var ctx = sci.ctx_store.get_ctx();
sci.impl.vars.push_thread_bindings(cljs.core.PersistentArrayMap.createAsIfByAssoc([sci.impl.utils.current_ns,sci.impl.namespaces.sci_the_ns_STAR_(ctx,ns)]));

try{return sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$3(ctx,env,sym);
}finally {sci.impl.vars.pop_thread_bindings();
}}));

(sci.impl.namespaces.sci_ns_resolve.cljs$lang$maxFixedArity = 3);

sci.impl.namespaces.sci_requiring_resolve = (function sci$impl$namespaces$sci_requiring_resolve(sym){
var sci_ctx = sci.ctx_store.get_ctx();
if(cljs.core.qualified_symbol_QMARK_(sym)){
var or__5025__auto__ = sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$2(sci_ctx,sym);
if(cljs.core.truth_(or__5025__auto__)){
return or__5025__auto__;
} else {
var namespace = cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));
sci.impl.namespaces.require_STAR_.cljs$core$IFn$_invoke$arity$variadic(sci_ctx,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([namespace], 0));

return sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$2(sci_ctx,sym);
}
} else {
throw (new Error(["Not a qualified symbol: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join('')));
}
});
sci.impl.namespaces.sci_find_var = (function sci$impl$namespaces$sci_find_var(sym){
if(cljs.core.qualified_symbol_QMARK_(sym)){
var nsname = cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace(sym));
var sym_SINGLEQUOTE_ = cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(sym));
var temp__5802__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(sci.ctx_store.get_ctx()))),nsname);
if(cljs.core.truth_(temp__5802__auto__)){
var namespace = temp__5802__auto__;
return cljs.core.get.cljs$core$IFn$_invoke$arity$2(namespace,sym_SINGLEQUOTE_);
} else {
throw (new Error(["No such namespace: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(nsname)].join('')));
}
} else {
throw (new Error(["Not a qualified symbol: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join('')));
}
});
/**
 * Takes a map of Var/value pairs. Installs for the given Vars the associated
 *   values as thread-local bindings. Then calls f with the supplied arguments.
 *   Pops the installed bindings after f returned. Returns whatever f returns.
 */
sci.impl.namespaces.with_bindings_STAR_ = (function sci$impl$namespaces$with_bindings_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46607 = arguments.length;
var i__5750__auto___46608 = (0);
while(true){
if((i__5750__auto___46608 < len__5749__auto___46607)){
args__5755__auto__.push((arguments[i__5750__auto___46608]));

var G__46609 = (i__5750__auto___46608 + (1));
i__5750__auto___46608 = G__46609;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.with_bindings_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.with_bindings_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (binding_map,f,args){
sci.impl.vars.push_thread_bindings(binding_map);

try{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args);
}finally {sci.impl.vars.pop_thread_bindings();
}}));

(sci.impl.namespaces.with_bindings_STAR_.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.with_bindings_STAR_.cljs$lang$applyTo = (function (seq45834){
var G__45835 = cljs.core.first(seq45834);
var seq45834__$1 = cljs.core.next(seq45834);
var G__45836 = cljs.core.first(seq45834__$1);
var seq45834__$2 = cljs.core.next(seq45834__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45835,G__45836,seq45834__$2);
}));

sci.impl.namespaces.sci_with_bindings = (function sci$impl$namespaces$sci_with_bindings(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46611 = arguments.length;
var i__5750__auto___46612 = (0);
while(true){
if((i__5750__auto___46612 < len__5749__auto___46611)){
args__5755__auto__.push((arguments[i__5750__auto___46612]));

var G__46613 = (i__5750__auto___46612 + (1));
i__5750__auto___46612 = G__46613;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.sci_with_bindings.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.sci_with_bindings.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,binding_map,body){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","with-bindings*","cljs.core/with-bindings*",-768558084,null),null,(1),null)),(new cljs.core.List(null,binding_map,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$0()))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.sci_with_bindings.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.sci_with_bindings.cljs$lang$applyTo = (function (seq45837){
var G__45838 = cljs.core.first(seq45837);
var seq45837__$1 = cljs.core.next(seq45837);
var G__45839 = cljs.core.first(seq45837__$1);
var seq45837__$2 = cljs.core.next(seq45837__$1);
var G__45840 = cljs.core.first(seq45837__$2);
var seq45837__$3 = cljs.core.next(seq45837__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45838,G__45839,G__45840,seq45837__$3);
}));

sci.impl.namespaces.sci_binding = (function sci$impl$namespaces$sci_binding(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46616 = arguments.length;
var i__5750__auto___46617 = (0);
while(true){
if((i__5750__auto___46617 < len__5749__auto___46616)){
args__5755__auto__.push((arguments[i__5750__auto___46617]));

var G__46618 = (i__5750__auto___46617 + (1));
i__5750__auto___46617 = G__46618;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.sci_binding.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.sci_binding.cljs$core$IFn$_invoke$arity$variadic = (function (form,_,bindings,body){
if(cljs.core.vector_QMARK_(bindings)){
} else {
sci.impl.utils.throw_error_with_location.cljs$core$IFn$_invoke$arity$2("binding requires a vector for its bindings",form);
}

if(cljs.core.even_QMARK_(cljs.core.count(bindings))){
} else {
sci.impl.utils.throw_error_with_location.cljs$core$IFn$_invoke$arity$2("binding requires an even number of forms in binding vector",form);
}

var var_ize = (function (var_vals){
var ret = cljs.core.PersistentVector.EMPTY;
var vvs = cljs.core.seq(var_vals);
while(true){
if(vvs){
var G__46620 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(ret,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"var","var",870848730,null),null,(1),null)),(new cljs.core.List(null,cljs.core.first(vvs),null,(1),null)))))),cljs.core.second(vvs));
var G__46621 = cljs.core.next(cljs.core.next(vvs));
ret = G__46620;
vvs = G__46621;
continue;
} else {
return cljs.core.seq(ret);
}
break;
}
});
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$0()))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","push-thread-bindings","cljs.core/push-thread-bindings",-703482450,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","hash-map","cljs.core/hash-map",303385767,null),null,(1),null)),var_ize(bindings)))),null,(1),null))))),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"try","try",-1273693247,null),null,(1),null)),body,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"finally","finally",-1065347064,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","pop-thread-bindings","cljs.core/pop-thread-bindings",-1994943347,null),null,(1),null))))),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.sci_binding.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.sci_binding.cljs$lang$applyTo = (function (seq45849){
var G__45850 = cljs.core.first(seq45849);
var seq45849__$1 = cljs.core.next(seq45849);
var G__45851 = cljs.core.first(seq45849__$1);
var seq45849__$2 = cljs.core.next(seq45849__$1);
var G__45852 = cljs.core.first(seq45849__$2);
var seq45849__$3 = cljs.core.next(seq45849__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45850,G__45851,G__45852,seq45849__$3);
}));

/**
 * Returns a function, which will install the same bindings in effect as in
 *   the thread at the time bound-fn* was called and then call f with any given
 *   arguments. This may be used to define a helper function which runs on a
 *   different thread, but needs the same bindings in place.
 */
sci.impl.namespaces.bound_fn_STAR_ = (function sci$impl$namespaces$bound_fn_STAR_(f){
var bindings = sci.impl.vars.get_thread_bindings();
return (function() { 
var G__46628__delegate = function (args){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(sci.impl.namespaces.with_bindings_STAR_,bindings,f,args);
};
var G__46628 = function (var_args){
var args = null;
if (arguments.length > 0) {
var G__46629__i = 0, G__46629__a = new Array(arguments.length -  0);
while (G__46629__i < G__46629__a.length) {G__46629__a[G__46629__i] = arguments[G__46629__i + 0]; ++G__46629__i;}
  args = new cljs.core.IndexedSeq(G__46629__a,0,null);
} 
return G__46628__delegate.call(this,args);};
G__46628.cljs$lang$maxFixedArity = 0;
G__46628.cljs$lang$applyTo = (function (arglist__46630){
var args = cljs.core.seq(arglist__46630);
return G__46628__delegate(args);
});
G__46628.cljs$core$IFn$_invoke$arity$variadic = G__46628__delegate;
return G__46628;
})()
;
});
/**
 * Returns a function defined by the given fntail, which will install the
 *   same bindings in effect as in the thread at the time bound-fn was called.
 *   This may be used to define a helper function which runs on a different
 *   thread, but needs the same bindings in place.
 */
sci.impl.namespaces.sci_bound_fn = (function sci$impl$namespaces$sci_bound_fn(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46631 = arguments.length;
var i__5750__auto___46632 = (0);
while(true){
if((i__5750__auto___46632 < len__5749__auto___46631)){
args__5755__auto__.push((arguments[i__5750__auto___46632]));

var G__46633 = (i__5750__auto___46632 + (1));
i__5750__auto___46632 = G__46633;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.sci_bound_fn.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.sci_bound_fn.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,fntail){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","bound-fn*","cljs.core/bound-fn*",-556238942,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null),null,(1),null)),fntail))),null,(1),null)))));
}));

(sci.impl.namespaces.sci_bound_fn.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.sci_bound_fn.cljs$lang$applyTo = (function (seq45863){
var G__45864 = cljs.core.first(seq45863);
var seq45863__$1 = cljs.core.next(seq45863);
var G__45865 = cljs.core.first(seq45863__$1);
var seq45863__$2 = cljs.core.next(seq45863__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45864,G__45865,seq45863__$2);
}));

sci.impl.namespaces.sci_thread_bound_QMARK_ = (function sci$impl$namespaces$sci_thread_bound_QMARK_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46636 = arguments.length;
var i__5750__auto___46637 = (0);
while(true){
if((i__5750__auto___46637 < len__5749__auto___46636)){
args__5755__auto__.push((arguments[i__5750__auto___46637]));

var G__46638 = (i__5750__auto___46637 + (1));
i__5750__auto___46637 = G__46638;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((0) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);
return sci.impl.namespaces.sci_thread_bound_QMARK_.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);
});

(sci.impl.namespaces.sci_thread_bound_QMARK_.cljs$core$IFn$_invoke$arity$variadic = (function (vars){
return cljs.core.every_QMARK_((function (p1__45868_SHARP_){
return sci.impl.vars.get_thread_binding(p1__45868_SHARP_);
}),vars);
}));

(sci.impl.namespaces.sci_thread_bound_QMARK_.cljs$lang$maxFixedArity = (0));

/** @this {Function} */
(sci.impl.namespaces.sci_thread_bound_QMARK_.cljs$lang$applyTo = (function (seq45869){
var self__5735__auto__ = this;
return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq45869));
}));

sci.impl.namespaces.sci_with_redefs_fn = (function sci$impl$namespaces$sci_with_redefs_fn(binding_map,func){
var root_bind = (function (m){
var seq__45873 = cljs.core.seq(m);
var chunk__45874 = null;
var count__45875 = (0);
var i__45876 = (0);
while(true){
if((i__45876 < count__45875)){
var vec__45884 = chunk__45874.cljs$core$IIndexed$_nth$arity$2(null,i__45876);
var a_var = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45884,(0),null);
var a_val = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45884,(1),null);
sci.impl.vars.bindRoot(a_var,a_val);


var G__46640 = seq__45873;
var G__46641 = chunk__45874;
var G__46642 = count__45875;
var G__46643 = (i__45876 + (1));
seq__45873 = G__46640;
chunk__45874 = G__46641;
count__45875 = G__46642;
i__45876 = G__46643;
continue;
} else {
var temp__5804__auto__ = cljs.core.seq(seq__45873);
if(temp__5804__auto__){
var seq__45873__$1 = temp__5804__auto__;
if(cljs.core.chunked_seq_QMARK_(seq__45873__$1)){
var c__5548__auto__ = cljs.core.chunk_first(seq__45873__$1);
var G__46644 = cljs.core.chunk_rest(seq__45873__$1);
var G__46645 = c__5548__auto__;
var G__46646 = cljs.core.count(c__5548__auto__);
var G__46647 = (0);
seq__45873 = G__46644;
chunk__45874 = G__46645;
count__45875 = G__46646;
i__45876 = G__46647;
continue;
} else {
var vec__45888 = cljs.core.first(seq__45873__$1);
var a_var = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45888,(0),null);
var a_val = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45888,(1),null);
sci.impl.vars.bindRoot(a_var,a_val);


var G__46648 = cljs.core.next(seq__45873__$1);
var G__46649 = null;
var G__46650 = (0);
var G__46651 = (0);
seq__45873 = G__46648;
chunk__45874 = G__46649;
count__45875 = G__46650;
i__45876 = G__46651;
continue;
}
} else {
return null;
}
}
break;
}
});
var old_vals = cljs.core.zipmap(cljs.core.keys(binding_map),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__45871_SHARP_){
return sci.impl.vars.getRawRoot(p1__45871_SHARP_);
}),cljs.core.keys(binding_map)));
try{root_bind(binding_map);

return (func.cljs$core$IFn$_invoke$arity$0 ? func.cljs$core$IFn$_invoke$arity$0() : func.call(null));
}finally {root_bind(old_vals);
}});
sci.impl.namespaces.sci_with_redefs = (function sci$impl$namespaces$sci_with_redefs(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46653 = arguments.length;
var i__5750__auto___46654 = (0);
while(true){
if((i__5750__auto___46654 < len__5749__auto___46653)){
args__5755__auto__.push((arguments[i__5750__auto___46654]));

var G__46656 = (i__5750__auto___46654 + (1));
i__5750__auto___46654 = G__46656;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.sci_with_redefs.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.sci_with_redefs.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,bindings,body){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","with-redefs-fn","cljs.core/with-redefs-fn",-1271194088,null),null,(1),null)),(new cljs.core.List(null,cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__45891_SHARP_){
return (new cljs.core.List(null,new cljs.core.Symbol(null,"var","var",870848730,null),(new cljs.core.List(null,p1__45891_SHARP_,null,(1),null)),(2),null));
}),cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),bindings)),cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),cljs.core.next(bindings))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$0()))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),null,(1),null))], 0))));
}));

(sci.impl.namespaces.sci_with_redefs.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.sci_with_redefs.cljs$lang$applyTo = (function (seq45892){
var G__45893 = cljs.core.first(seq45892);
var seq45892__$1 = cljs.core.next(seq45892);
var G__45894 = cljs.core.first(seq45892__$1);
var seq45892__$2 = cljs.core.next(seq45892__$1);
var G__45895 = cljs.core.first(seq45892__$2);
var seq45892__$3 = cljs.core.next(seq45892__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45893,G__45894,G__45895,seq45892__$3);
}));

/**
 * Returns a Symbol with the given namespace and name. Arity-1 works
 *   on strings, keywords, and vars.
 */
sci.impl.namespaces.symbol_STAR_ = (function sci$impl$namespaces$symbol_STAR_(var_args){
var G__45899 = arguments.length;
switch (G__45899) {
case 1:
return sci.impl.namespaces.symbol_STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));

break;
case 2:
return sci.impl.namespaces.symbol_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));

}
});

(sci.impl.namespaces.symbol_STAR_.cljs$core$IFn$_invoke$arity$1 = (function (name){
if(sci.impl.utils.var_QMARK_(name)){
var m = cljs.core.meta(name);
var ns = new cljs.core.Keyword(null,"ns","ns",441598760).cljs$core$IFn$_invoke$arity$1(m);
var nm = new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(m);
if(cljs.core.truth_((function (){var and__5023__auto__ = ns;
if(cljs.core.truth_(and__5023__auto__)){
return nm;
} else {
return and__5023__auto__;
}
})())){
return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(sci.impl.types.getName(ns)),cljs.core.name(nm));
} else {
return null;
}
} else {
return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name);
}
}));

(sci.impl.namespaces.symbol_STAR_.cljs$core$IFn$_invoke$arity$2 = (function (ns,name){
return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(ns,name);
}));

(sci.impl.namespaces.symbol_STAR_.cljs$lang$maxFixedArity = 2);

sci.impl.namespaces.macroexpand_STAR_ = (function sci$impl$namespaces$macroexpand_STAR_(expr){
return sci.impl.macroexpand.macroexpand(sci.ctx_store.get_ctx(),expr);
});
sci.impl.namespaces.macroexpand_1_STAR_ = (function sci$impl$namespaces$macroexpand_1_STAR_(expr){
return sci.impl.macroexpand.macroexpand_1(sci.ctx_store.get_ctx(),expr);
});
sci.impl.namespaces._create_type = (function sci$impl$namespaces$_create_type(data){
return (new sci.lang.Type(data,null,null));
});
sci.impl.namespaces.sci_impl_records = new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"obj","obj",981763962),sci.lang.__GT_Namespace(new cljs.core.Symbol(null,"sci.impl.records","sci.impl.records",-393424368,null),null),new cljs.core.Keyword(null,"private","private",-558947994),true,new cljs.core.Symbol(null,"toString","toString",-95766347,null),sci.impl.records.to_string,new cljs.core.Symbol(null,"-create-record-type","-create-record-type",-1472918739,null),sci.impl.namespaces._create_type,new cljs.core.Symbol(null,"->record-impl","->record-impl",1274709757,null),sci.impl.records.__GT_record_impl], null);
sci.impl.namespaces.sci_impl_deftype = new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,"obj","obj",981763962),sci.lang.__GT_Namespace(new cljs.core.Symbol(null,"sci.impl.deftype","sci.impl.deftype",959784924,null),null),new cljs.core.Keyword(null,"private","private",-558947994),true,new cljs.core.Symbol(null,"toString","toString",-95766347,null),sci.impl.deftype.to_string,new cljs.core.Symbol(null,"-create-type","-create-type",805234013,null),sci.impl.namespaces._create_type,new cljs.core.Symbol(null,"->type-impl","->type-impl",483401048,null),sci.impl.deftype.__GT_type_impl,new cljs.core.Symbol(null,"-inner-impl","-inner-impl",-1295431849,null),sci.impl.types.getVal,new cljs.core.Symbol(null,"-mutate","-mutate",-795549165,null),sci.impl.types._mutate,new cljs.core.Symbol(null,"type","type",-1480165421,null),sci.impl.types.type_impl], null);
sci.impl.namespaces.sci_impl_protocols = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"obj","obj",981763962),sci.lang.__GT_Namespace(new cljs.core.Symbol(null,"sci.impl.protocols","sci.impl.protocols",-697012432,null),null),new cljs.core.Keyword(null,"private","private",-558947994),true,new cljs.core.Symbol(null,"type->str","type->str",360030041,null),sci.impl.protocols.type__GT_str], null);
sci.impl.namespaces._STAR_1 = sci.impl.namespaces._STAR_1;
sci.impl.namespaces._STAR_2 = sci.impl.namespaces._STAR_2;
sci.impl.namespaces._STAR_3 = sci.impl.namespaces._STAR_3;
sci.impl.namespaces._STAR_e = sci.impl.namespaces._STAR_e;
sci.impl.namespaces.type = (function sci$impl$namespaces$type(x){
var or__5025__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(x),new cljs.core.Keyword(null,"type","type",1174270348));
if(cljs.core.truth_(or__5025__auto__)){
return or__5025__auto__;
} else {
return cljs.core.type(x);
}
});
/**
 * Atomically sets the metadata for a namespace/var/ref/agent/atom to be:
 * 
 *   (apply f its-current-meta args)
 * 
 *   f must be free of side-effects
 */
sci.impl.namespaces.alter_meta_BANG_ = (function sci$impl$namespaces$alter_meta_BANG_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46667 = arguments.length;
var i__5750__auto___46668 = (0);
while(true){
if((i__5750__auto___46668 < len__5749__auto___46667)){
args__5755__auto__.push((arguments[i__5750__auto___46668]));

var G__46669 = (i__5750__auto___46668 + (1));
i__5750__auto___46668 = G__46669;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.alter_meta_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.alter_meta_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (iref,f,args){
var m = cljs.core.meta(iref);
if(cljs.core.not(new cljs.core.Keyword("sci","built-in","sci/built-in",1244659599).cljs$core$IFn$_invoke$arity$1(m))){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.alter_meta_BANG_,iref,f,args);
} else {
throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Built-in var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(iref)," is read-only."].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"var","var",-769682797),iref], null));
}
}));

(sci.impl.namespaces.alter_meta_BANG_.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.alter_meta_BANG_.cljs$lang$applyTo = (function (seq45904){
var G__45905 = cljs.core.first(seq45904);
var seq45904__$1 = cljs.core.next(seq45904);
var G__45906 = cljs.core.first(seq45904__$1);
var seq45904__$2 = cljs.core.next(seq45904__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45905,G__45906,seq45904__$2);
}));

sci.impl.namespaces.let_STAR__STAR_ = (function sci$impl$namespaces$let_STAR__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46671 = arguments.length;
var i__5750__auto___46672 = (0);
while(true){
if((i__5750__auto___46672 < len__5749__auto___46671)){
args__5755__auto__.push((arguments[i__5750__auto___46672]));

var G__46673 = (i__5750__auto___46672 + (1));
i__5750__auto___46672 = G__46673;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.let_STAR__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.let_STAR__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (expr,_,bindings,body){
if(cljs.core.vector_QMARK_(bindings)){
} else {
sci.impl.utils.throw_error_with_location.cljs$core$IFn$_invoke$arity$2("let requires a vector for its binding",expr);
}

if(cljs.core.even_QMARK_(cljs.core.count(bindings))){
} else {
sci.impl.utils.throw_error_with_location.cljs$core$IFn$_invoke$arity$2("let requires an even number of forms in binding vector",expr);
}

return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"let*","let*",1920721458,null),null,(1),null)),(new cljs.core.List(null,sci.impl.destructure.destructure.cljs$core$IFn$_invoke$arity$2(bindings,cljs.core.meta(expr)),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0))));
}));

(sci.impl.namespaces.let_STAR__STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.let_STAR__STAR_.cljs$lang$applyTo = (function (seq45909){
var G__45910 = cljs.core.first(seq45909);
var seq45909__$1 = cljs.core.next(seq45909);
var G__45911 = cljs.core.first(seq45909__$1);
var seq45909__$2 = cljs.core.next(seq45909__$1);
var G__45912 = cljs.core.first(seq45909__$2);
var seq45909__$3 = cljs.core.next(seq45909__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45910,G__45911,G__45912,seq45909__$3);
}));

sci.impl.namespaces.loop_STAR__STAR_ = (function sci$impl$namespaces$loop_STAR__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46674 = arguments.length;
var i__5750__auto___46675 = (0);
while(true){
if((i__5750__auto___46675 < len__5749__auto___46674)){
args__5755__auto__.push((arguments[i__5750__auto___46675]));

var G__46676 = (i__5750__auto___46675 + (1));
i__5750__auto___46675 = G__46676;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.loop_STAR__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.loop_STAR__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (expr,_,bindings,body){
if(cljs.core.vector_QMARK_(bindings)){
} else {
sci.impl.utils.throw_error_with_location.cljs$core$IFn$_invoke$arity$2("let requires a vector for its binding",expr);
}

if(cljs.core.even_QMARK_(cljs.core.count(bindings))){
} else {
sci.impl.utils.throw_error_with_location.cljs$core$IFn$_invoke$arity$2("let requires an even number of forms in binding vector",expr);
}

var db = ((cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,bindings))?bindings:sci.impl.destructure.destructure.cljs$core$IFn$_invoke$arity$1(bindings));
if((db === bindings)){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"loop*","loop*",615029416,null),null,(1),null)),(new cljs.core.List(null,bindings,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0))));
} else {
var vs = cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((1),bindings));
var bs = cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),bindings);
var gs = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (b){
if((b instanceof cljs.core.Symbol)){
return b;
} else {
return cljs.core.gensym.cljs$core$IFn$_invoke$arity$0();
}
}),bs);
var bfs = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,p__45919){
var vec__45920 = p__45919;
var b = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45920,(0),null);
var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45920,(1),null);
var g = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__45920,(2),null);
if((b instanceof cljs.core.Symbol)){
return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(ret,g,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v], 0));
} else {
return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(ret,g,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v,b,g], 0));
}
}),cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$4(cljs.core.vector,bs,vs,gs));
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,bfs,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"loop*","loop*",615029416,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(gs,gs)),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(bs,gs)),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),null,(1),null))], 0)))),null,(1),null))], 0))));
}
}));

(sci.impl.namespaces.loop_STAR__STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.loop_STAR__STAR_.cljs$lang$applyTo = (function (seq45914){
var G__45915 = cljs.core.first(seq45914);
var seq45914__$1 = cljs.core.next(seq45914);
var G__45916 = cljs.core.first(seq45914__$1);
var seq45914__$2 = cljs.core.next(seq45914__$1);
var G__45917 = cljs.core.first(seq45914__$2);
var seq45914__$3 = cljs.core.next(seq45914__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45915,G__45916,G__45917,seq45914__$3);
}));

/**
 * This is a macro for compatiblity. Only there for docs and macroexpand, faster impl in analyzer.cljc
 */
sci.impl.namespaces.or_STAR_ = (function sci$impl$namespaces$or_STAR_(var_args){
var G__45931 = arguments.length;
switch (G__45931) {
case 2:
return sci.impl.namespaces.or_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
case 3:
return sci.impl.namespaces.or_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));

break;
default:
var args_arr__5774__auto__ = [];
var len__5749__auto___46696 = arguments.length;
var i__5750__auto___46697 = (0);
while(true){
if((i__5750__auto___46697 < len__5749__auto___46696)){
args_arr__5774__auto__.push((arguments[i__5750__auto___46697]));

var G__46698 = (i__5750__auto___46697 + (1));
i__5750__auto___46697 = G__46698;
continue;
} else {
}
break;
}

var argseq__5775__auto__ = ((((3) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.or_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);

}
});

(sci.impl.namespaces.or_STAR_.cljs$core$IFn$_invoke$arity$2 = (function (_,___$1){
return null;
}));

(sci.impl.namespaces.or_STAR_.cljs$core$IFn$_invoke$arity$3 = (function (_,___$1,x){
return x;
}));

(sci.impl.namespaces.or_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,x,next){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"or__45924__auto__","or__45924__auto__",741796502,null),null,(1),null)),(new cljs.core.List(null,x,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"or__45924__auto__","or__45924__auto__",741796502,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Symbol(null,"or__45924__auto__","or__45924__auto__",741796502,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","or","cljs.core/or",1201033885,null),null,(1),null)),next))),null,(1),null))], 0)))),null,(1),null))], 0))));
}));

/** @this {Function} */
(sci.impl.namespaces.or_STAR_.cljs$lang$applyTo = (function (seq45927){
var G__45928 = cljs.core.first(seq45927);
var seq45927__$1 = cljs.core.next(seq45927);
var G__45929 = cljs.core.first(seq45927__$1);
var seq45927__$2 = cljs.core.next(seq45927__$1);
var G__45930 = cljs.core.first(seq45927__$2);
var seq45927__$3 = cljs.core.next(seq45927__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45928,G__45929,G__45930,seq45927__$3);
}));

(sci.impl.namespaces.or_STAR_.cljs$lang$maxFixedArity = (3));

/**
 * This is a macro for compatiblity. Only there for docs and macroexpand, faster impl in analyzer.cljc
 */
sci.impl.namespaces.and_STAR_ = (function sci$impl$namespaces$and_STAR_(var_args){
var G__45939 = arguments.length;
switch (G__45939) {
case 2:
return sci.impl.namespaces.and_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
case 3:
return sci.impl.namespaces.and_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));

break;
default:
var args_arr__5774__auto__ = [];
var len__5749__auto___46700 = arguments.length;
var i__5750__auto___46701 = (0);
while(true){
if((i__5750__auto___46701 < len__5749__auto___46700)){
args_arr__5774__auto__.push((arguments[i__5750__auto___46701]));

var G__46702 = (i__5750__auto___46701 + (1));
i__5750__auto___46701 = G__46702;
continue;
} else {
}
break;
}

var argseq__5775__auto__ = ((((3) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.and_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__auto__);

}
});

(sci.impl.namespaces.and_STAR_.cljs$core$IFn$_invoke$arity$2 = (function (_,___$1){
return true;
}));

(sci.impl.namespaces.and_STAR_.cljs$core$IFn$_invoke$arity$3 = (function (_,___$1,x){
return x;
}));

(sci.impl.namespaces.and_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,x,next){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"and__45933__auto__","and__45933__auto__",-641708509,null),null,(1),null)),(new cljs.core.List(null,x,null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"and__45933__auto__","and__45933__auto__",-641708509,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","and","cljs.core/and",-6692549,null),null,(1),null)),next))),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"and__45933__auto__","and__45933__auto__",-641708509,null),null,(1),null))], 0)))),null,(1),null))], 0))));
}));

/** @this {Function} */
(sci.impl.namespaces.and_STAR_.cljs$lang$applyTo = (function (seq45935){
var G__45936 = cljs.core.first(seq45935);
var seq45935__$1 = cljs.core.next(seq45935);
var G__45937 = cljs.core.first(seq45935__$1);
var seq45935__$2 = cljs.core.next(seq45935__$1);
var G__45938 = cljs.core.first(seq45935__$2);
var seq45935__$3 = cljs.core.next(seq45935__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45936,G__45937,G__45938,seq45935__$3);
}));

(sci.impl.namespaces.and_STAR_.cljs$lang$maxFixedArity = (3));

/**
 * This is a macro for compatiblity. Only there for docs and macroexpand, faster impl in analyzer.cljc
 */
sci.impl.namespaces.case_STAR__STAR_ = (function sci$impl$namespaces$case_STAR__STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46711 = arguments.length;
var i__5750__auto___46712 = (0);
while(true){
if((i__5750__auto___46712 < len__5749__auto___46711)){
args__5755__auto__.push((arguments[i__5750__auto___46712]));

var G__46713 = (i__5750__auto___46712 + (1));
i__5750__auto___46712 = G__46713;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.case_STAR__STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.case_STAR__STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,body){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"case*","case*",-1938255072,null),null,(1),null)),body)));
}));

(sci.impl.namespaces.case_STAR__STAR_.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.case_STAR__STAR_.cljs$lang$applyTo = (function (seq45941){
var G__45942 = cljs.core.first(seq45941);
var seq45941__$1 = cljs.core.next(seq45941);
var G__45943 = cljs.core.first(seq45941__$1);
var seq45941__$2 = cljs.core.next(seq45941__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45942,G__45943,seq45941__$2);
}));

sci.impl.namespaces.loaded_libs_STAR__STAR_ = (function sci$impl$namespaces$loaded_libs_STAR__STAR_(syms){
return sci.impl.utils.dynamic_var.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(null,"*loaded-libs*","*loaded-libs*",1951428860,null),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.sorted_set(),syms)),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"doc","doc",1913296891),"A ref to a sorted set of symbols representing loaded libs",new cljs.core.Keyword(null,"ns","ns",441598760),sci.impl.namespaces.clojure_core_ns,new cljs.core.Keyword(null,"private","private",-558947994),true,new cljs.core.Keyword("sci","built-in","sci/built-in",1244659599),true], null));
});
sci.impl.namespaces.loaded_libs_STAR_ = (function sci$impl$namespaces$loaded_libs_STAR_(){
return cljs.core.deref(cljs.core.deref(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(sci.ctx_store.get_ctx()))),new cljs.core.Symbol(null,"clojure.core","clojure.core",-189332625,null)),new cljs.core.Symbol(null,"*loaded-libs*","*loaded-libs*",1951428860,null))));
});
sci.impl.namespaces._add_loaded_lib = (function sci$impl$namespaces$_add_loaded_lib(name){
sci.impl.load.add_loaded_lib(cljs.core.deref(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(sci.ctx_store.get_ctx())),name);

return null;
});
sci.impl.namespaces.ns_STAR_ = (function sci$impl$namespaces$ns_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46715 = arguments.length;
var i__5750__auto___46716 = (0);
while(true){
if((i__5750__auto___46716 < len__5749__auto___46715)){
args__5755__auto__.push((arguments[i__5750__auto___46716]));

var G__46717 = (i__5750__auto___46716 + (1));
i__5750__auto___46716 = G__46717;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((3) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((3)),(0),null)):null);
return sci.impl.namespaces.ns_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5756__auto__);
});

(sci.impl.namespaces.ns_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_form,_,name,references){
var process_reference = (function (p__45954){
var vec__45955 = p__45954;
var seq__45956 = cljs.core.seq(vec__45955);
var first__45957 = cljs.core.first(seq__45956);
var seq__45956__$1 = cljs.core.next(seq__45956);
var kname = first__45957;
var args = seq__45956__$1;
var expr = vec__45955;
return cljs.core.with_meta(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2("clojure.core",cljs.core.name(kname)),null,(1),null)),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__45946_SHARP_){
return (new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),(new cljs.core.List(null,p1__45946_SHARP_,null,(1),null)),(2),null));
}),args)))),cljs.core.meta(expr));
});
var docstring = ((typeof cljs.core.first(references) === 'string')?cljs.core.first(references):null);
var references__$1 = (cljs.core.truth_(docstring)?cljs.core.next(references):references);
var name__$1 = (cljs.core.truth_(docstring)?cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(name,cljs.core.assoc,new cljs.core.Keyword(null,"doc","doc",1913296891),docstring):name);
var metadata = ((cljs.core.map_QMARK_(cljs.core.first(references__$1)))?cljs.core.first(references__$1):null);
var references__$2 = (cljs.core.truth_(metadata)?cljs.core.next(references__$1):references__$1);
var name__$2 = (cljs.core.truth_(metadata)?cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(name__$1,cljs.core.merge,metadata):name__$1);
var references__$3 = cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__45948_SHARP_){
return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"gen-class","gen-class",-426712454),cljs.core.first(p1__45948_SHARP_));
}),references__$2);
var name_metadata = cljs.core.meta(name__$2);
var exp = cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"do","do",1686842252,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","in-ns","cljs.core/in-ns",1807208747,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,name__$2,null,(1),null))))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(cljs.core.truth_(name_metadata)?cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","alter-meta!","cljs.core/alter-meta!",574694262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","find-ns","cljs.core/find-ns",-486459417,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,name__$2,null,(1),null))))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","constantly","cljs.core/constantly",119002258,null),null,(1),null)),(new cljs.core.List(null,name_metadata,null,(1),null))))),null,(1),null))], 0)))):null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(process_reference,references__$3),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","=","cljs.core/=",-1891498332,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,name__$2,null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"clojure.core","clojure.core",-189332625,null),null,(1),null))))),null,(1),null))], 0)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,null,null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"do","do",1686842252,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","-add-loaded-lib","cljs.core/-add-loaded-lib",-38500354,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,name__$2,null,(1),null))))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,null,null,(1),null))], 0)))),null,(1),null))], 0)))),null,(1),null))], 0))));
return exp;
}));

(sci.impl.namespaces.ns_STAR_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(sci.impl.namespaces.ns_STAR_.cljs$lang$applyTo = (function (seq45950){
var G__45951 = cljs.core.first(seq45950);
var seq45950__$1 = cljs.core.next(seq45950);
var G__45952 = cljs.core.first(seq45950__$1);
var seq45950__$2 = cljs.core.next(seq45950__$1);
var G__45953 = cljs.core.first(seq45950__$2);
var seq45950__$3 = cljs.core.next(seq45950__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45951,G__45952,G__45953,seq45950__$3);
}));

sci.impl.namespaces.lazy_seq_STAR_ = (function sci$impl$namespaces$lazy_seq_STAR_(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46740 = arguments.length;
var i__5750__auto___46741 = (0);
while(true){
if((i__5750__auto___46741 < len__5749__auto___46740)){
args__5755__auto__.push((arguments[i__5750__auto___46741]));

var G__46748 = (i__5750__auto___46741 + (1));
i__5750__auto___46741 = G__46748;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return sci.impl.namespaces.lazy_seq_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
});

(sci.impl.namespaces.lazy_seq_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,body){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"new","new",-444906321,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol("cljs.core","LazySeq","cljs.core/LazySeq",1986389673,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,null,null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$0()))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([body], 0)))),null,(1),null)),(new cljs.core.List(null,null,null,(1),null)),(new cljs.core.List(null,null,null,(1),null))], 0))));
}));

(sci.impl.namespaces.lazy_seq_STAR_.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(sci.impl.namespaces.lazy_seq_STAR_.cljs$lang$applyTo = (function (seq45962){
var G__45963 = cljs.core.first(seq45962);
var seq45962__$1 = cljs.core.next(seq45962);
var G__45964 = cljs.core.first(seq45962__$1);
var seq45962__$2 = cljs.core.next(seq45962__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45963,G__45964,seq45962__$2);
}));

/**
 * Evaluates expr and prints the time it took. Returns the value of expr.
 */
sci.impl.namespaces.time = (function sci$impl$namespaces$time(_,___$1,expr){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,"start__45970__auto__","start__45970__auto__",-1660217390,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","system-time","cljs.core/system-time",1562011930,null),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Symbol(null,"ret__45971__auto__","ret__45971__auto__",1731898746,null),null,(1),null)),(new cljs.core.List(null,expr,null,(1),null))], 0))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","prn","cljs.core/prn",1725204552,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","str","cljs.core/str",-1971828991,null),null,(1),null)),(new cljs.core.List(null,"Elapsed time: ",null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(null,".toFixed",".toFixed",-895046938,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","-","cljs.core/-",187040141,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","system-time","cljs.core/system-time",1562011930,null),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Symbol(null,"start__45970__auto__","start__45970__auto__",-1660217390,null),null,(1),null))], 0)))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,(6),null,(1),null))], 0)))),null,(1),null)),(new cljs.core.List(null," msecs",null,(1),null))], 0)))),null,(1),null))))),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"ret__45971__auto__","ret__45971__auto__",1731898746,null),null,(1),null))], 0))));
});
/**
 * Return true if argument exists, analogous to usage of typeof operator
 * in JavaScript.
 */
sci.impl.namespaces.exists_QMARK_ = (function sci$impl$namespaces$exists_QMARK_(_,__AMPERSAND_env,x){
var ctx = sci.ctx_store.get_ctx();
if((x instanceof cljs.core.Symbol)){
if(cljs.core.qualified_symbol_QMARK_(x)){
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("js",cljs.core.namespace(x))){
var splits = clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.name(x),".");
return cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol("cljs.core","and","cljs.core/and",-6692549,null),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (accessor){
return (new cljs.core.List(null,new cljs.core.Symbol("cljs.core","not","cljs.core/not",100665144,null),(new cljs.core.List(null,(new cljs.core.List(null,new cljs.core.Symbol("cljs.core","undefined?","cljs.core/undefined?",-1206515693,null),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2("js",cljs.core.str.cljs$core$IFn$_invoke$arity$1(accessor)),null,(1),null)),(2),null)),null,(1),null)),(2),null));
}),cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,split){
var new_sym = (function (){var la = cljs.core.last(acc);
return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(la),(cljs.core.truth_(la)?".":null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(split)].join('');
})();
return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,new_sym);
}),cljs.core.PersistentVector.EMPTY,splits)));
} else {
return cljs.core.boolean$((function (){try{return sci.impl.resolve.resolve_symbol.cljs$core$IFn$_invoke$arity$4(ctx,x,null,null);
}catch (e45980){var ___$1 = e45980;
return null;
}})());
}
} else {
return ((cljs.core.boolean$(sci.impl.namespaces.sci_find_ns_STAR_(ctx,x))) || (cljs.core.boolean$((function (){try{return sci.impl.resolve.resolve_symbol.cljs$core$IFn$_invoke$arity$4(ctx,x,null,null);
}catch (e45984){var ___$1 = e45984;
return null;
}})())));
}
} else {
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","some?","cljs.core/some?",-440439360,null),null,(1),null)),(new cljs.core.List(null,x,null,(1),null)))));
}
});
sci.impl.namespaces.eval_STAR_ = (function sci$impl$namespaces$eval_STAR_(form){
var ctx = sci.ctx_store.get_ctx();
return sci.impl.utils.eval(ctx,form);
});
sci.impl.namespaces.clojure_core = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,"unchecked-char","unchecked-char",1662742943,null),new cljs.core.Symbol(null,"*print-fn*","*print-fn*",138509853,null),new cljs.core.Symbol(null,"sorted-set","sorted-set",992325424,null),new cljs.core.Symbol(null,"true?","true?",-1600332395,null),new cljs.core.Symbol(null,"pop!","pop!",-1253383511,null),new cljs.core.Symbol(null,"deftype","deftype",1980826088,null),new cljs.core.Symbol(null,"unchecked-byte","unchecked-byte",1091664664,null),new cljs.core.Symbol(null,"unchecked-set","unchecked-set",-986164507,null),new cljs.core.Symbol(null,"*2","*2",1728229926,null),new cljs.core.Symbol(null,"doto","doto",1252536074,null),new cljs.core.Symbol(null,"reduce-kv","reduce-kv",1856296400,null),new cljs.core.Symbol(null,"defmethod","defmethod",-579171823,null),new cljs.core.Symbol(null,"update-in","update-in",-1445516941,null),new cljs.core.Symbol(null,"prefer-method","prefer-method",-876100205,null),new cljs.core.Symbol(null,"derive","derive",1727397303,null),new cljs.core.Symbol(null,"nfirst","nfirst",-554736533,null),new cljs.core.Symbol(null,"sort-by","sort-by",1317932224,null),new cljs.core.Symbol(null,"*data-readers*","*data-readers*",1269051058,null),new cljs.core.Symbol(null,"keys","keys",-1586012071,null),new cljs.core.Symbol(null,"ancestors","ancestors",864486103,null),new cljs.core.Symbol(null,"first","first",996428481,null),new cljs.core.Symbol(null,"butlast","butlast",1573039585,null),new cljs.core.Symbol(null,"and","and",668631710,null),new cljs.core.Symbol(null,"with-out-str","with-out-str",-140201577,null),new cljs.core.Symbol(null,"partition-by","partition-by",-1329938249,null),new cljs.core.Symbol(null,"uri?","uri?",2029475116,null),new cljs.core.Symbol(null,"map-entry?","map-entry?",1140615277,null),new cljs.core.Symbol(null,"simple-keyword?","simple-keyword?",-367134735,null),new cljs.core.Symbol(null,"into-array","into-array",-1875808354,null),new cljs.core.Symbol(null,"ns-refers","ns-refers",-2030918515,null),new cljs.core.Symbol(null,"rest","rest",398835108,null),new cljs.core.Symbol(null,"case","case",-1510733573,null),new cljs.core.Symbol(null,"seq","seq",-177272256,null),new cljs.core.Symbol(null,"unchecked-inc-int","unchecked-inc-int",1402783397,null),new cljs.core.Symbol(null,"hash-combine","hash-combine",1136881997,null),new cljs.core.Symbol(null,"ns-unalias","ns-unalias",445102632,null),new cljs.core.Symbol(null,"odd?","odd?",-1458588199,null),new cljs.core.Symbol(null,"partition","partition",-1479695018,null),new cljs.core.Symbol(null,">=",">=",1016916022,null),new cljs.core.Symbol(null,"fnext","fnext",1424835295,null),new cljs.core.Symbol(null,"when-first","when-first",821699168,null),new cljs.core.Symbol(null,"bit-or","bit-or",-1144943723,null),new cljs.core.Symbol(null,"disj","disj",-1076545178,null),new cljs.core.Symbol(null,"with-redefs-fn","with-redefs-fn",-595725379,null),new cljs.core.Symbol(null,"-new-var","-new-var",1200468147,null),new cljs.core.Symbol(null,"unchecked-short","unchecked-short",27848057,null),new cljs.core.Symbol(null,"ffirst","ffirst",-694902000,null),new cljs.core.Symbol(null,"condp","condp",1054325175,null),new cljs.core.Symbol(null,"munge","munge",-174396700,null),new cljs.core.Symbol(null,"*file*","*file*",624866474,null),new cljs.core.Symbol(null,"unchecked-negate-int","unchecked-negate-int",-825297602,null),new cljs.core.Symbol(null,"print-str","print-str",-699700354,null),new cljs.core.Symbol(null,"vreset!","vreset!",1237177091,null),new cljs.core.Symbol(null,"uuid?","uuid?",400077689,null),new cljs.core.Symbol(null,"reset!","reset!",527275632,null),new cljs.core.Symbol(null,"IRecord","IRecord",-903221169,null),new cljs.core.Symbol(null,"memfn","memfn",-881453486,null),new cljs.core.Symbol(null,"atom","atom",1243487874,null),new cljs.core.Symbol(null,"select-keys","select-keys",-708556589,null),new cljs.core.Symbol(null,"reverse","reverse",752076261,null),new cljs.core.Symbol(null,"ex-message","ex-message",-1128293394,null),new cljs.core.Symbol(null,"special-symbol?","special-symbol?",-731144617,null),new cljs.core.Symbol(null,"merge","merge",-163787882,null),new cljs.core.Symbol(null,"inst-ms","inst-ms",-653961375,null),new cljs.core.Symbol(null,"newline","newline",-864364446,null),new cljs.core.Symbol(null,"unchecked-multiply","unchecked-multiply",-1019161490,null),new cljs.core.Symbol(null,"*print-readably*","*print-readably*",-761361221,null),new cljs.core.Symbol(null,"..","..",-300507420,null),new cljs.core.Symbol(null,"chunked-seq?","chunked-seq?",1044846168,null),new cljs.core.Symbol(null,"inst?","inst?",1614698981,null),new cljs.core.Symbol(null,"random-sample","random-sample",-914181101,null),new cljs.core.Symbol(null,">",">",1085014381,null),new cljs.core.Symbol(null,"*read-eval*","*read-eval*",1122065414,null),new cljs.core.Symbol(null,"count","count",-514511684,null),new cljs.core.Symbol(null,"simple-ident?","simple-ident?",194189851,null),new cljs.core.Symbol(null,"ns-name","ns-name",-436814796,null),new cljs.core.Symbol(null,"*1","*1",2110258092,null),new cljs.core.Symbol(null,"last","last",-1548700637,null),new cljs.core.Symbol(null,"bit-shift-left","bit-shift-left",-1814765981,null),new cljs.core.Symbol(null,"int","int",-100885395,null),new cljs.core.Symbol(null,"defmacro","defmacro",2054157304,null),new cljs.core.Symbol(null,"unchecked-negate","unchecked-negate",-1669067451,null),new cljs.core.Symbol(null,"volatile?","volatile?",-984469558,null),new cljs.core.Symbol(null,"multi-fn-impl","multi-fn-impl",187651105,null),new cljs.core.Symbol(null,"unchecked-remainder-int","unchecked-remainder-int",1427188224,null),new cljs.core.Symbol(null,"byte","byte",-1970660549,null),new cljs.core.Symbol(null,"conj!","conj!",-841007895,null),new cljs.core.Symbol(null,"time","time",-1268547887,null),new cljs.core.Symbol(null,"println","println",-733595439,null),new cljs.core.Symbol(null,"defprotocol","defprotocol",1388695348,null),new cljs.core.Symbol(null,"int?","int?",1799729645,null),new cljs.core.Symbol(null,"defn","defn",-126010802,null),new cljs.core.Symbol(null,"loaded-libs","loaded-libs",484141875,null),new cljs.core.Symbol(null,"long-array","long-array",217579190,null),new cljs.core.Symbol(null,"find","find",2136810983,null),new cljs.core.Symbol(null,"vals","vals",-1886377036,null),new cljs.core.Symbol(null,"nil?","nil?",1612038930,null),new cljs.core.Symbol(null,"flush","flush",501820328,null),new cljs.core.Symbol(null,"hash","hash",1626749931,null),new cljs.core.Symbol(null,"pr","pr",1056937027,null),new cljs.core.Symbol(null,"destructure","destructure",1731452410,null),new cljs.core.Symbol(null,"unchecked-subtract","unchecked-subtract",-2137458667,null),new cljs.core.Symbol(null,"comment","comment",-2122229700,null),new cljs.core.Symbol(null,"with-redefs","with-redefs",-1143728263,null),new cljs.core.Symbol(null,"js-delete","js-delete",170306730,null),new cljs.core.Symbol(null,"float?","float?",673884616,null),new cljs.core.Symbol(null,"second","second",1195829517,null),new cljs.core.Symbol(null,"extend-protocol","extend-protocol",306378578,null),new cljs.core.Symbol(null,"*err*","*err*",2070937226,null),new cljs.core.Symbol(null,"array?","array?",-1249008197,null),new cljs.core.Symbol(null,"chunk-first","chunk-first",1379046752,null),new cljs.core.Symbol(null,"alias","alias",-399220103,null),new cljs.core.Symbol(null,"-write","-write",1999625154,null),new cljs.core.Symbol(null,"unchecked-add-int","unchecked-add-int",-1821763285,null),new cljs.core.Symbol(null,"ifn?","ifn?",-2106461064,null),new cljs.core.Symbol(null,"loop","loop",1244978678,null),new cljs.core.Symbol(null,"ex-info","ex-info",-539875240,null),new cljs.core.Symbol(null,"inc","inc",324505433,null),new cljs.core.Symbol(null,"/","/",-1371932971,null),new cljs.core.Symbol(null,"amap","amap",635923055,null),new cljs.core.Symbol(null,"volatile!","volatile!",919368405,null),new cljs.core.Symbol(null,"with-meta","with-meta",73674707,null),new cljs.core.Symbol(null,"map?","map?",-1780568534,null),new cljs.core.Symbol(null,"vector?","vector?",-61367869,null),new cljs.core.Symbol(null,"->>","->>",-1874332161,null),new cljs.core.Symbol(null,"quot","quot",-1125214196,null),new cljs.core.Symbol(null,"any?","any?",-318999933,null),new cljs.core.Symbol(null,"*print-newline*","*print-newline*",1478078956,null),new cljs.core.Symbol(null,"load-reader","load-reader",-734810126,null),new cljs.core.Symbol(null,"unchecked-add","unchecked-add",-2030665965,null),new cljs.core.Symbol(null,"Delay","Delay",-956795572,null),new cljs.core.Symbol(null,"floats","floats",513591110,null),new cljs.core.Symbol(null,"drop-while","drop-while",719206685,null),new cljs.core.Symbol(null,"bounded-count","bounded-count",1030640883,null),new cljs.core.Symbol(null,"take-while","take-while",2007268328,null),new cljs.core.Symbol(null,"extends?","extends?",-2012201234,null),new cljs.core.Symbol(null,"sort","sort",-1700969851,null),new cljs.core.Symbol(null,"false?","false?",-1522377573,null),new cljs.core.Symbol(null,"cat","cat",182721320,null),new cljs.core.Symbol(null,"extend-type","extend-type",1123355921,null),new cljs.core.Symbol(null,"*print-level*","*print-level*",-634488505,null),new cljs.core.Symbol(null,"replace","replace",853943757,null),new cljs.core.Symbol(null,"doseq","doseq",221164135,null),new cljs.core.Symbol(null,"drop","drop",2005013138,null),new cljs.core.Symbol(null,"push-thread-bindings","push-thread-bindings",1054019843,null),new cljs.core.Symbol(null,"not","not",1044554643,null),new cljs.core.Symbol(null,"keep","keep",-492807003,null),new cljs.core.Symbol(null,"cons","cons",755448454,null),new cljs.core.Symbol(null,"*e","*e",329170866,null),new cljs.core.Symbol(null,"bit-shift-right","bit-shift-right",884046498,null),new cljs.core.Symbol(null,"associative?","associative?",-141666771,null),new cljs.core.Symbol(null,"read","read",-1514377108,null),new cljs.core.Symbol(null,"unquote","unquote",-1004694737,null),new cljs.core.Symbol(null,"macroexpand","macroexpand",1509933344,null),new cljs.core.Symbol(null,"create-ns","create-ns",-782886354,null),new cljs.core.Symbol(null,"*print-err-fn*","*print-err-fn*",1241679298,null),new cljs.core.Symbol(null,"*print-length*","*print-length*",-687693654,null),new cljs.core.Symbol(null,"if-not","if-not",-265415609,null),new cljs.core.Symbol(null,"chunk-next","chunk-next",-547810434,null),new cljs.core.Symbol(null,"var-set","var-set",-1361408121,null),new cljs.core.Symbol(null,"bit-flip","bit-flip",809639606,null),new cljs.core.Symbol(null,"aset","aset",900773178,null),new cljs.core.Symbol(null,"-deref","-deref",-283116853,null),new cljs.core.Symbol(null,"*ns*","*ns*",740153818,null),new cljs.core.Symbol(null,"some-fn","some-fn",-490044165,null),new cljs.core.Symbol(null,"var?","var?",230455531,null),new cljs.core.Symbol(null,"*print-meta*","*print-meta*",-919406644,null),new cljs.core.Symbol(null,"when-not","when-not",-1223136340,null),new cljs.core.Symbol(null,"unchecked-multiply-int","unchecked-multiply-int",-788546068,null),new cljs.core.Symbol(null,"identity","identity",-1007039734,null),new cljs.core.Symbol(null,"-reset!","-reset!",1965723739,null),new cljs.core.Symbol(null,"to-array","to-array",-585705189,null),new cljs.core.Symbol(null,"double-array","double-array",257035726,null),new cljs.core.Symbol(null,"sorted-map","sorted-map",-521216771,null),new cljs.core.Symbol(null,"-reified-methods","-reified-methods",1702712518,null),new cljs.core.Symbol(null,"concat","concat",-467652465,null),new cljs.core.Symbol(null,"char","char",998943941,null),new cljs.core.Symbol(null,"ident?","ident?",-2061359468,null),new cljs.core.Symbol(null,"make-array","make-array",-1135103906,null),new cljs.core.Symbol(null,"chunk-buffer","chunk-buffer",789680287,null),new cljs.core.Symbol(null,"peek","peek",1349135202,null),new cljs.core.Symbol(null,"hash-unordered-coll","hash-unordered-coll",-240471618,null),new cljs.core.Symbol(null,"when","when",1064114221,null),new cljs.core.Symbol(null,"clj->js","clj->js",-1880244676,null),new cljs.core.Symbol(null,"sequence","sequence",-1727628355,null),new cljs.core.Symbol(null,"group-by","group-by",1261391725,null),new cljs.core.Symbol(null,"re-seq","re-seq",-2105554076,null),new cljs.core.Symbol(null,"-swap!","-swap!",-535359318,null),new cljs.core.Symbol(null,"when-some","when-some",1700415903,null),new cljs.core.Symbol(null,"unchecked-subtract-int","unchecked-subtract-int",-1899147615,null),new cljs.core.Symbol(null,"<=","<=",1244895369,null),new cljs.core.Symbol(null,"prefers","prefers",-374265406,null),new cljs.core.Symbol(null,"vary-meta","vary-meta",-1580067831,null),new cljs.core.Symbol(null,"=","=",-1501502141,null),new cljs.core.Symbol(null,"intern","intern",1664352151,null),new cljs.core.Symbol(null,"keep-indexed","keep-indexed",-2020916352,null),new cljs.core.Symbol(null,"js-obj","js-obj",342383250,null),new cljs.core.Symbol(null,"every?","every?",2083724064,null),new cljs.core.Symbol(null,"comp","comp",-1462482139,null),new cljs.core.Symbol(null,"bit-set","bit-set",-910710655,null),new cljs.core.Symbol(null,"dissoc","dissoc",1039760994,null),new cljs.core.Symbol(null,"min","min",2085523049,null),new cljs.core.Symbol(null,"char?","char?",-1072221244,null),new cljs.core.Symbol(null,"with-open","with-open",172119667,null),new cljs.core.Symbol(null,"interleave","interleave",165488106,null),new cljs.core.Symbol(null,"declare","declare",654042991,null),new cljs.core.Symbol(null,"with-local-vars","with-local-vars",837642072,null),new cljs.core.Symbol(null,"bound?","bound?",767722602,null),new cljs.core.Symbol(null,"all-ns","all-ns",1571857784,null),new cljs.core.Symbol(null,"split-at","split-at",-60953742,null),new cljs.core.Symbol(null,"neg-int?","neg-int?",-1610409390,null),new cljs.core.Symbol(null,"mapv","mapv",-241595241,null),new cljs.core.Symbol(null,"defonce","defonce",-1681484013,null),new cljs.core.Symbol(null,"-add-loaded-lib","-add-loaded-lib",368206419,null),new cljs.core.Symbol(null,"prn","prn",1561684909,null),new cljs.core.Symbol(null,"drop-last","drop-last",-1123611530,null),new cljs.core.Symbol(null,"with-bindings*","with-bindings*",-93186207,null),new cljs.core.Symbol(null,"fnil","fnil",-187395162,null),new cljs.core.Symbol(null,"cond->>","cond->>",348844960,null),new cljs.core.Symbol(null,"pop-thread-bindings","pop-thread-bindings",-1312224790,null),new cljs.core.Symbol(null,"satisfies?","satisfies?",-433227199,null),new cljs.core.Symbol(null,"next","next",1522830042,null),new cljs.core.Symbol(null,"+","+",-740910886,null),new cljs.core.Symbol(null,"load-string","load-string",-403739145,null),new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"unchecked-double","unchecked-double",-1593778036,null),new cljs.core.Symbol(null,"when-let","when-let",-1383043480,null),new cljs.core.Symbol(null,"symbol?","symbol?",1820680511,null),new cljs.core.Symbol(null,"chunk-cons","chunk-cons",433801405,null),new cljs.core.Symbol(null,"disj!","disj!",-1383872088,null),new cljs.core.Symbol(null,"->Eduction","->Eduction",-188511967,null),new cljs.core.Symbol(null,"ns-imports","ns-imports",1111168888,null),new cljs.core.Symbol(null,"methods","methods",2094462393,null),new cljs.core.Symbol(null,"reset-meta!","reset-meta!",1699493291,null),new cljs.core.Symbol(null,"areduce","areduce",-1873477878,null),new cljs.core.Symbol(null,"ns","ns",2082130287,null),new cljs.core.Symbol(null,"js->clj","js->clj",1544462432,null),new cljs.core.Symbol(null,"dotimes","dotimes",-818708397,null),new cljs.core.Symbol(null,"rand-int","rand-int",-495012157,null),new cljs.core.Symbol(null,"complement","complement",-913606051,null),new cljs.core.Symbol(null,"list?","list?",-1494629,null),new cljs.core.Symbol(null,"aget","aget",1491056546,null),new cljs.core.Symbol(null,"zipmap","zipmap",-690049687,null),new cljs.core.Symbol(null,"find-var","find-var",-497901917,null),new cljs.core.Symbol(null,"for","for",316745208,null),new cljs.core.Symbol(null,"run!","run!",-2055483725,null),new cljs.core.Symbol(null,"==","==",-234118149,null),new cljs.core.Symbol(null,"chars","chars",545901210,null),new cljs.core.Symbol(null,"iterate","iterate",694501410,null),new cljs.core.Symbol(null,"boolean","boolean",-278886877,null),new cljs.core.Symbol(null,"hash-ordered-coll","hash-ordered-coll",114448715,null),new cljs.core.Symbol(null,"hash-map","hash-map",-439030950,null),new cljs.core.Symbol(null,"unchecked-inc","unchecked-inc",-1170131490,null),new cljs.core.Symbol(null,"max-key","max-key",-2132814732,null),new cljs.core.Symbol(null,"qualified-ident?","qualified-ident?",-928894763,null),new cljs.core.Symbol(null,"dissoc!","dissoc!",333592624,null),new cljs.core.Symbol(null,"coll?","coll?",-1874821441,null),new cljs.core.Symbol(null,"reversible?","reversible?",314107817,null),new cljs.core.Symbol(null,"ns-unmap","ns-unmap",1255260993,null),new cljs.core.Symbol(null,"apply","apply",-1334050276,null),new cljs.core.Symbol(null,"*in*","*in*",1130010229,null),new cljs.core.Symbol(null,"subvec","subvec",364611032,null),new cljs.core.Symbol(null,"isa?","isa?",1358492324,null),new cljs.core.Symbol(null,"not-every?","not-every?",-729672558,null),new cljs.core.Symbol(null,"ex-cause","ex-cause",95392590,null),new cljs.core.Symbol(null,"keyword?","keyword?",1917797069,null),new cljs.core.Symbol(null,"ex-data","ex-data",1331491268,null),new cljs.core.Symbol(null,"*print-namespace-maps*","*print-namespace-maps*",-1759108415,null),new cljs.core.Symbol(null,"compare","compare",1109853757,null),new cljs.core.Symbol(null,"underive","underive",-242982950,null),new cljs.core.Symbol(null,"transduce","transduce",-2083619734,null),new cljs.core.Symbol(null,"*flush-on-newline*","*flush-on-newline*",-737526501,null),new cljs.core.Symbol(null,"range","range",-1014743483,null),new cljs.core.Symbol(null,"IDeref","IDeref",1738423197,null),new cljs.core.Symbol(null,"sorted?","sorted?",892797714,null),new cljs.core.Symbol(null,"frequencies","frequencies",1757430425,null),new cljs.core.Symbol(null,"cycle","cycle",-1944070485,null),new cljs.core.Symbol(null,"max","max",1701898075,null),new cljs.core.Symbol(null,"simple-symbol?","simple-symbol?",1408454822,null),new cljs.core.Symbol(null,"reify","reify",1885539699,null),new cljs.core.Symbol(null,"empty?","empty?",76408555,null),new cljs.core.Symbol(null,"into","into",1489695498,null),new cljs.core.Symbol(null,"integer?","integer?",1303791671,null),new cljs.core.Symbol(null,"*","*",345799209,null),new cljs.core.Symbol(null,"some->>","some->>",-1499987794,null),new cljs.core.Symbol(null,"unsigned-bit-shift-right","unsigned-bit-shift-right",-1953076601,null),new cljs.core.Symbol(null,"pr-str","pr-str",-2066912145,null),new cljs.core.Symbol(null,"some->","some->",-1011172200,null),new cljs.core.Symbol(null,"bound-fn","bound-fn",125411266,null),new cljs.core.Symbol(null,"unchecked-get","unchecked-get",-1670542461,null),new cljs.core.Symbol(null,"chunk","chunk",449371907,null),new cljs.core.Symbol(null,"cond","cond",1606708055,null),new cljs.core.Symbol(null,"distinct","distinct",-148347594,null),new cljs.core.Symbol(null,"ensure-reduced","ensure-reduced",-1606421005,null),new cljs.core.Symbol(null,"object-array","object-array",206434647,null),new cljs.core.Symbol(null,"juxt","juxt",671085604,null),new cljs.core.Symbol(null,"some","some",-310548046,null),new cljs.core.Symbol(null,"let","let",358118826,null),new cljs.core.Symbol(null,"interpose","interpose",-2078295140,null),new cljs.core.Symbol(null,"the-ns","the-ns",1016317907,null),new cljs.core.Symbol(null,"instance?","instance?",1075939923,null),new cljs.core.Symbol(null,"descendants","descendants",-829549738,null),new cljs.core.Symbol(null,"get-in","get-in",-1965644065,null),new cljs.core.Symbol(null,"fn","fn",465265323,null),new cljs.core.Symbol(null,"meta","meta",-1154898805,null),new cljs.core.Symbol(null,"reify*","reify*",1646945123,null),new cljs.core.Symbol(null,"defrecord","defrecord",273038109,null),new cljs.core.Symbol(null,"val","val",1769233139,null),new cljs.core.Symbol(null,"read-string","read-string",-558384455,null),new cljs.core.Symbol(null,"aclone","aclone",722978531,null),new cljs.core.Symbol(null,"assoc-in","assoc-in",-113585743,null),new cljs.core.Symbol(null,"zero?","zero?",325758897,null),new cljs.core.Symbol(null,"transient","transient",899115069,null),new cljs.core.Symbol(null,"letfn","letfn",-480490827,null),new cljs.core.Symbol(null,"realized?","realized?",207229341,null),new cljs.core.Symbol(null,"list*","list*",765415731,null),new cljs.core.Symbol(null,"ns-interns","ns-interns",535532824,null),new cljs.core.Symbol(null,"memoize","memoize",2019341169,null),new cljs.core.Symbol(null,"subseq","subseq",-1558995241,null),new cljs.core.Symbol(null,"delay?","delay?",-1528239209,null),new cljs.core.Symbol(null,"completing","completing",565832990,null),new cljs.core.Symbol(null,"unchecked-divide-int","unchecked-divide-int",1613116468,null),new cljs.core.Symbol(null,"shuffle","shuffle",-1393023609,null),new cljs.core.Symbol(null,"ns-map","ns-map",-434605548,null),new cljs.core.Symbol(null,"prn-str","prn-str",-145225943,null),new cljs.core.Symbol(null,"in-ns","in-ns",-2089468466,null),new cljs.core.Symbol(null,"defn-","defn-",1097765044,null),new cljs.core.Symbol(null,"compare-and-set!","compare-and-set!",-1997299382,null),new cljs.core.Symbol(null,"use","use",-205850897,null),new cljs.core.Symbol(null,"longs","longs",-1017696020,null),new cljs.core.Symbol(null,"remove-ns","remove-ns",-1915058781,null),new cljs.core.Symbol(null,"unchecked-int","unchecked-int",1672898125,null),new cljs.core.Symbol(null,"nthrest","nthrest",1219890118,null),new cljs.core.Symbol(null,"thread-bound?","thread-bound?",2075334115,null),new cljs.core.Symbol(null,"*reader-resolver*","*reader-resolver*",309718590,null),new cljs.core.Symbol(null,"doubles","doubles",-1517872169,null),new cljs.core.Symbol(null,"force","force",-1872478483,null),new cljs.core.Symbol(null,"remove-method","remove-method",72923733,null),new cljs.core.Symbol(null,"system-time","system-time",1690633727,null),new cljs.core.Symbol(null,"extend","extend",-817951763,null),new cljs.core.Symbol(null,"nnext","nnext",-2065435598,null),new cljs.core.Symbol(null,"dec","dec",-766002333,null),new cljs.core.Symbol(null,"qualified-keyword?","qualified-keyword?",375456001,null),new cljs.core.Symbol(null,"comparator","comparator",-509539107,null),new cljs.core.Symbol(null,"take-last","take-last",-41013151,null),new cljs.core.Symbol(null,"find-ns","find-ns",-884829568,null),new cljs.core.Symbol(null,"string?","string?",-1129175764,null),new cljs.core.Symbol(null,"print","print",-1354873355,null),new cljs.core.Symbol(null,"*assert*","*assert*",1479636474,null),new cljs.core.Symbol(null,"bit-xor","bit-xor",-1334295033,null),new cljs.core.Symbol(null,"map","map",-1282745308,null),new cljs.core.Symbol(null,"float","float",-91857841,null),new cljs.core.Symbol(null,"chunk-append","chunk-append",-1447349559,null),new cljs.core.Symbol(null,"deref","deref",1494944732,null),new cljs.core.Symbol(null,"re-pattern","re-pattern",1047705161,null),new cljs.core.Symbol(null,"repeat","repeat",-1821743682,null),new cljs.core.Symbol(null,"reduce","reduce",1358839360,null),new cljs.core.Symbol(null,"qualified-symbol?","qualified-symbol?",98763807,null),new cljs.core.Symbol(null,"eval","eval",536963622,null),new cljs.core.Symbol(null,"vector","vector",-751469611,null),new cljs.core.Symbol(null,"doall","doall",988520834,null),new cljs.core.Symbol(null,"exists?","exists?",-1239962053,null),new cljs.core.Symbol(null,"assoc!","assoc!",-847603280,null),new cljs.core.Symbol(null,"not=","not=",1466536204,null),new cljs.core.Symbol(null,"alter-meta!","alter-meta!",1510444945,null),new cljs.core.Symbol(null,"constantly","constantly",-271143939,null),new cljs.core.Symbol(null,"seq?","seq?",-1951934719,null),new cljs.core.Symbol(null,"js-keys","js-keys",-1388365203,null),new cljs.core.Symbol(null,"get","get",-971253014,null),new cljs.core.Symbol(null,"require","require",1172530194,null),new cljs.core.Symbol(null,"key","key",124488940,null),new cljs.core.Symbol(null,"bit-and-not","bit-and-not",-254338837,null),new cljs.core.Symbol(null,"mapcat","mapcat",-601348859,null),new cljs.core.Symbol(null,"cond->","cond->",561741875,null),new cljs.core.Symbol(null,"nat-int?","nat-int?",-1879663400,null),new cljs.core.Symbol(null,"demunge","demunge",-1865491845,null),new cljs.core.Symbol(null,"get-method","get-method",185754457,null),new cljs.core.Symbol(null,"*out*","*out*",1277591796,null),new cljs.core.Symbol(null,"str","str",-1564826950,null),new cljs.core.Symbol(null,"empty","empty",-1886564811,null),new cljs.core.Symbol(null,"counted?","counted?",1703071664,null),new cljs.core.Symbol(null,"set?","set?",1636014792,null),new cljs.core.Symbol(null,"alength","alength",-1268305401,null),new cljs.core.Symbol(null,"filterv","filterv",1977739179,null),new cljs.core.Symbol(null,"reductions","reductions",549963952,null),new cljs.core.Symbol(null,"booleans","booleans",756846088,null),new cljs.core.Symbol(null,"<","<",993667236,null),new cljs.core.Symbol(null,"reduced","reduced",-1189224808,null),new cljs.core.Symbol(null,"halt-when","halt-when",-140999689,null),new cljs.core.Symbol(null,"namespace","namespace",1263021155,null),new cljs.core.Symbol(null,"keyword","keyword",-1843046022,null),new cljs.core.Symbol(null,"bound-fn*","bound-fn*",102308621,null),new cljs.core.Symbol(null,"record?","record?",-1305224237,null),new cljs.core.Symbol(null,"tagged-literal?","tagged-literal?",1117865390,null),new cljs.core.Symbol(null,"-","-",-471816912,null),new cljs.core.Symbol(null,"bit-and","bit-and",-479352589,null),new cljs.core.Symbol(null,"unreduced","unreduced",780976083,null),new cljs.core.Symbol(null,"assoc","assoc",2071440380,null),new cljs.core.Symbol(null,"defmulti","defmulti",1936112154,null),new cljs.core.Symbol(null,"partition-all","partition-all",-1985005385,null),new cljs.core.Symbol(null,"bit-not","bit-not",1508529851,null),new cljs.core.Symbol(null,"some?","some?",234752293,null),new cljs.core.Symbol(null,"pos?","pos?",-244377722,null),new cljs.core.Symbol(null,"trampoline","trampoline",-71368916,null),new cljs.core.Symbol(null,"rand","rand",-1745930995,null),new cljs.core.Symbol(null,"re-matches","re-matches",-1865705768,null),new cljs.core.Symbol(null,"boolean?","boolean?",1790940868,null),new cljs.core.Symbol(null,"every-pred","every-pred",-1346958247,null),new cljs.core.Symbol(null,"locking","locking",1542862874,null),new cljs.core.Symbol(null,"fn?","fn?",1820990818,null),new cljs.core.Symbol(null,"sequential?","sequential?",1102351463,null),new cljs.core.Symbol(null,"list","list",-1889078086,null),new cljs.core.Symbol(null,"sorted-set-by","sorted-set-by",899099765,null),new cljs.core.Symbol(null,"nthnext","nthnext",1677356670,null),new cljs.core.Symbol(null,"eduction","eduction",1445227968,null),new cljs.core.Symbol(null,"rand-nth","rand-nth",-1227719931,null),new cljs.core.Symbol(null,"delay","delay",1066306308,null),new cljs.core.Symbol(null,"partial","partial",1881673272,null),new cljs.core.Symbol(null,"with-bindings","with-bindings",-1197589787,null),new cljs.core.Symbol(null,"rsubseq","rsubseq",-710070471,null),new cljs.core.Symbol(null,"contains?","contains?",-1676812576,null),new cljs.core.Symbol(null,"->","->",-2139605430,null),new cljs.core.Symbol(null,"shorts","shorts",107738238,null),new cljs.core.Symbol(null,"random-uuid","random-uuid",-1574409597,null),new cljs.core.Symbol(null,"ISwap","ISwap",484378193,null),new cljs.core.Symbol(null,"as->","as->",1430690540,null),new cljs.core.Symbol(null,"hash-set","hash-set",-1145168432,null),new cljs.core.Symbol(null,"take","take",871646627,null),new cljs.core.Symbol(null,"if-let","if-let",1803593690,null),new cljs.core.Symbol(null,"macroexpand-1","macroexpand-1",659241329,null),new cljs.core.Symbol(null,"split-with","split-with",1853047034,null),new cljs.core.Symbol(null,"refer","refer",676235974,null),new cljs.core.Symbol(null,"binding-conveyor-fn","binding-conveyor-fn",2076077877,null),new cljs.core.Symbol(null,"make-hierarchy","make-hierarchy",-241558556,null),new cljs.core.Symbol(null,"tagged-literal","tagged-literal",-896422703,null),new cljs.core.Symbol(null,"has-root-impl","has-root-impl",-288948659,null),new cljs.core.Symbol(null,"parents","parents",-387007364,null),new cljs.core.Symbol(null,"test","test",-2076896892,null),new cljs.core.Symbol(null,"vec","vec",982683596,null),new cljs.core.Symbol(null,"nth","nth",1529209554,null),new cljs.core.Keyword(null,"obj","obj",981763962),new cljs.core.Symbol(null,"lazy-cat","lazy-cat",-89906116,null),new cljs.core.Symbol(null,"if-some","if-some",1960677609,null),new cljs.core.Symbol(null,"subs","subs",1453849536,null),new cljs.core.Symbol(null,"*default-data-reader-fn*","*default-data-reader-fn*",758795499,null),new cljs.core.Symbol(null,"to-array-2d","to-array-2d",-1563270737,null),new cljs.core.Symbol(null,"symbol","symbol",601958831,null),new cljs.core.Symbol(null,"mod","mod",1510044207,null),new cljs.core.Symbol(null,"lazy-seq","lazy-seq",489632906,null),new cljs.core.Symbol(null,"number?","number?",-1747282210,null),new cljs.core.Symbol(null,"reduced?","reduced?",1361797384,null),new cljs.core.Symbol(null,"-new-dynamic-var","-new-dynamic-var",-1029088918,null),new cljs.core.Symbol(null,"object?","object?",327472310,null),new cljs.core.Symbol(null,"conj","conj",-1127293942,null),new cljs.core.Symbol(null,"bytes","bytes",-1478569089,null),new cljs.core.Symbol(null,"unchecked-float","unchecked-float",1485658216,null),new cljs.core.Symbol(null,"LazySeq","LazySeq",1579450882,null),new cljs.core.Symbol(null,"bit-test","bit-test",543456753,null),new cljs.core.Symbol(null,"sorted-map-by","sorted-map-by",218894812,null),new cljs.core.Symbol(null,"double?","double?",-2146564276,null),new cljs.core.Symbol(null,"rseq","rseq",-1719353554,null),new cljs.core.Symbol(null,"unchecked-long","unchecked-long",1306610949,null),new cljs.core.Symbol(null,"binding","binding",-2114503176,null),new cljs.core.Symbol(null,"double","double",-1769548886,null),new cljs.core.Symbol(null,"unchecked-dec","unchecked-dec",2095823150,null),new cljs.core.Symbol(null,"tree-seq","tree-seq",-1800921632,null),new cljs.core.Symbol(null,"multi-fn-add-method-impl","multi-fn-add-method-impl",-523930142,null),new cljs.core.Symbol(null,"seqable?","seqable?",72462495,null),new cljs.core.Symbol(null,"swap!","swap!",-655677516,null),new cljs.core.Symbol(null,"vswap!","vswap!",-574070781,null),new cljs.core.Symbol(null,"array-map","array-map",1555038968,null),new cljs.core.Symbol(null,"reset-thread-binding-frame-impl","reset-thread-binding-frame-impl",-826674194,null),new cljs.core.Symbol(null,"dedupe","dedupe",-461856254,null),new cljs.core.Symbol(null,"short","short",-725675253,null),new cljs.core.Symbol(null,"update","update",-1608859373,null),new cljs.core.Symbol(null,"filter","filter",691993593,null),new cljs.core.Symbol(null,"unchecked-dec-int","unchecked-dec-int",1339067442,null),new cljs.core.Symbol(null,"*3","*3",105062009,null),new cljs.core.Symbol(null,"requiring-resolve","requiring-resolve",-1888505231,null),new cljs.core.Symbol(null,"rem","rem",664046770,null),new cljs.core.Symbol(null,"pop","pop",-94247249,null),new cljs.core.Symbol(null,"merge-with","merge-with",1025434534,null),new cljs.core.Symbol(null,"long","long",1469079434,null),new cljs.core.Symbol(null,"assert","assert",677428501,null),new cljs.core.Symbol(null,"array","array",-440182315,null),new cljs.core.Symbol(null,"refer-clojure","refer-clojure",-1840651329,null),new cljs.core.Symbol(null,"flatten","flatten",-1441633353,null),new cljs.core.Symbol(null,"distinct?","distinct?",-1684357959,null),new cljs.core.Symbol(null,"map-indexed","map-indexed",-1391025435,null),new cljs.core.Symbol(null,"ns-publics","ns-publics",903350436,null),new cljs.core.Symbol(null,"protocol-type-impl","protocol-type-impl",561934718,null),new cljs.core.Symbol(null,"even?","even?",-1827825394,null),new cljs.core.Symbol(null,"var-get","var-get",-767472097,null),new cljs.core.Symbol(null,"multi-fn?-impl","multi-fn?-impl",1372639302,null),new cljs.core.Symbol(null,"alter-var-root","alter-var-root",-1749458519,null),new cljs.core.Symbol(null,"type","type",-1480165421,null),new cljs.core.Symbol(null,"neg?","neg?",-1902175577,null),new cljs.core.Symbol(null,"gensym","gensym",-1693147401,null),new cljs.core.Symbol(null,"resolve","resolve",56086045,null),new cljs.core.Symbol(null,"add-watch","add-watch",1389887634,null),new cljs.core.Symbol(null,"not-any?","not-any?",-2114707554,null),new cljs.core.Symbol(null,"take-nth","take-nth",1378204353,null),new cljs.core.Symbol(null,"dorun","dorun",560426022,null),new cljs.core.Symbol(null,"remove-all-methods","remove-all-methods",-728267092,null),new cljs.core.Symbol(null,"not-empty","not-empty",2029453590,null),new cljs.core.Symbol(null,"*suppress-read*","*suppress-read*",1470729096,null),new cljs.core.Symbol(null,"ns-aliases","ns-aliases",-1364180948,null),new cljs.core.Symbol(null,"*print-dup*","*print-dup*",103854877,null),new cljs.core.Symbol(null,"ns-resolve","ns-resolve",1788675756,null),new cljs.core.Symbol(null,"get-thread-binding-frame-impl","get-thread-binding-frame-impl",-701667726,null),new cljs.core.Symbol(null,"chunk-rest","chunk-rest",-1853526420,null),new cljs.core.Symbol(null,"remove-watch","remove-watch",-1105301448,null),new cljs.core.Symbol(null,"or","or",1876275696,null),new cljs.core.Symbol(null,"int-array","int-array",459176616,null),new cljs.core.Symbol(null,"pos-int?","pos-int?",-1205815015,null),new cljs.core.Symbol(null,"undefined?","undefined?",1356377224,null),new cljs.core.Symbol(null,"ints","ints",-1761239845,null),new cljs.core.Symbol(null,"identical?","identical?",-745864205,null),new cljs.core.Symbol(null,"persistent!","persistent!",1286555698,null),new cljs.core.Symbol(null,"IReset","IReset",-1893729426,null),new cljs.core.Symbol(null,"indexed?","indexed?",1234610384,null),new cljs.core.Symbol(null,"min-key","min-key",246826648,null),new cljs.core.Symbol(null,"repeatedly","repeatedly",1199964457,null),new cljs.core.Symbol(null,"set","set",1945134081,null),new cljs.core.Symbol(null,"remove","remove",1509103113,null),new cljs.core.Symbol(null,"keyword-identical?","keyword-identical?",931555714,null),new cljs.core.Symbol(null,"while","while",-1691317983,null),new cljs.core.Symbol(null,"re-find","re-find",1143444147,null),new cljs.core.Symbol(null,"PersistentQueue","PersistentQueue",-160870792,null),new cljs.core.Symbol(null,"seq-to-map-for-destructuring","seq-to-map-for-destructuring",647384515,null)],[cljs.core.unchecked_char,sci.impl.io.print_fn,cljs.core.sorted_set,cljs.core.true_QMARK_,cljs.core.pop_BANG_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"deftype","deftype",1980826088,null),sci.impl.deftype.deftype,sci.impl.namespaces.clojure_core_ns,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"deftype","deftype",1980826088,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"t","t",242699008,null),new cljs.core.Symbol(null,"fields","fields",-291534703,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"impls","impls",326516674,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"(deftype name [fields*]  options* specs*)\n\n  Currently there are no options.\n\n  Each spec consists of a protocol or interface name followed by zero\n  or more method bodies:\n\n  protocol-or-Object\n  (methodName [args*] body)*\n\n  The type will have the (by default, immutable) fields named by\n  fields, which can have type hints. Protocols and methods\n  are optional. The only methods that can be supplied are those\n  declared in the protocols/interfaces.  Note that method bodies are\n  not closures, the local environment includes only the named fields,\n  and those fields can be accessed directly. Fields can be qualified\n  with the metadata :mutable true at which point (set! afield aval) will be\n  supported in method bodies. Note well that mutable fields are extremely\n  difficult to use correctly, and are present only to facilitate the building\n  of higherlevel constructs, such as ClojureScript's reference types, in\n  ClojureScript itself. They are for experts only - if the semantics and\n  implications of :mutable are not immediately apparent to you, you should not\n  be using them.\n\n  Method definitions take the form:\n\n  (methodname [args*] body)\n\n  The argument and return types can be hinted on the arg and\n  methodname symbols. If not supplied, they will be inferred, so type\n  hints should be reserved for disambiguation.\n\n  Methods should be supplied for all methods of the desired\n  protocol(s). You can also define overrides for methods of Object. Note that\n  a parameter must be supplied to correspond to the target object\n  ('this' in JavaScript parlance). Note also that recur calls to the method\n  head should *not* pass the target object, it will be supplied\n  automatically and can not be substituted.\n\n  In the method bodies, the (unqualified) name can be used to name the\n  class (for calls to new, instance? etc).\n\n  One constructor will be defined, taking the designated fields.  Note\n  that the field names __meta and __extmap are currently reserved and\n  should not be used when defining your own types.\n\n  Given (deftype TypeName ...), a factory function called ->TypeName\n  will be defined, taking positional parameters for the fields"], null)),cljs.core.unchecked_byte,cljs.core.aset,sci.impl.namespaces._STAR_2,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"doto","doto",1252536074,null),sci.impl.namespaces.doto_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"doto","doto",1252536074,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"forms","forms",-608443419,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates x then calls all of the methods and functions with the\n  value of x supplied at the front of the given arguments.  The forms\n  are evaluated in order.  Returns x.\n\n  (doto (new js/Map) (.set \"a\" 1) (.set \"b\" 2))"], null)),cljs.core.reduce_kv,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"defmethod","defmethod",-579171823,null),sci.impl.multimethods.defmethod,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"defmethod","defmethod",-579171823,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"multifn","multifn",-1904313150,null),new cljs.core.Symbol(null,"dispatch-val","dispatch-val",69061000,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"fn-tail","fn-tail",-178337841,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Creates and installs a new method of multimethod associated with dispatch-value. "], null)),cljs.core.update_in,cljs.core.prefer_method,sci.impl.hierarchies.derive_STAR_,cljs.core.nfirst,cljs.core.sort_by,sci.impl.parser.data_readers,cljs.core.keys,sci.impl.hierarchies.ancestors_STAR_,cljs.core.first,cljs.core.butlast,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"and","and",668631710,null),sci.impl.namespaces.and_STAR_,null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"and","and",668631710,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"next","next",1522830042,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates exprs one at a time, from left to right. If a form\n  returns logical false (nil or false), and returns that value and\n  doesn't evaluate any of the other expressions, otherwise it returns\n  the value of the last expr. (and) returns true.",new cljs.core.Keyword("sci.impl","fast-path","sci.impl/fast-path",1273254676),new cljs.core.Symbol(null,"and","and",668631710,null)], null)),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"with-out-str","with-out-str",-140201577,null),sci.impl.io.with_out_str,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"with-out-str","with-out-str",-140201577,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates exprs in a context in which *print-fn* is bound to .append\n  on a fresh StringBuffer.  Returns the string created by any nested\n  printing calls."], null)),cljs.core.partition_by,cljs.core.uri_QMARK_,cljs.core.map_entry_QMARK_,cljs.core.simple_keyword_QMARK_,cljs.core.into_array,sci.impl.namespaces.sci_ns_refers,cljs.core.rest,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"case","case",-1510733573,null),sci.impl.namespaces.case_STAR__STAR_,null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"case","case",-1510733573,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"e","e",-1273166571,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"clauses","clauses",-1199594528,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Takes an expression, and a set of clauses.\n\n  Each clause can take the form of either:\n\n  test-constant result-expr\n\n  (test-constant1 ... test-constantN)  result-expr\n\n  The test-constants are not evaluated. They must be compile-time\n  literals, and need not be quoted.  If the expression is equal to a\n  test-constant, the corresponding result-expr is returned. A single\n  default expression can follow the clauses, and its value will be\n  returned if no clause matches. If no default expression is provided\n  and no clause matches, an Error is thrown.\n\n  Unlike cond and condp, case does a constant-time dispatch, the\n  clauses are not considered sequentially.  All manner of constant\n  expressions are acceptable in case, including numbers, strings,\n  symbols, keywords, and (ClojureScript) composites thereof. Note that since\n  lists are used to group multiple constants that map to the same\n  expression, a vector can be used to match a list if needed. The\n  test-constants need not be all of the same type.",new cljs.core.Keyword("sci.impl","fast-path","sci.impl/fast-path",1273254676),new cljs.core.Symbol(null,"case","case",-1510733573,null)], null)),cljs.core.seq,cljs.core.unchecked_inc_int,cljs.core.hash_combine,sci.impl.namespaces.sci_ns_unalias,cljs.core.odd_QMARK_,cljs.core.partition,cljs.core._GT__EQ_,cljs.core.fnext,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"when-first","when-first",821699168,null),sci.impl.namespaces.when_first_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"when-first","when-first",821699168,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"bindings => x xs\n\n  Roughly the same as (when (seq xs) (let [x (first xs)] body)) but xs is evaluated only once"], null)),cljs.core.bit_or,cljs.core.disj,sci.impl.namespaces.sci_with_redefs_fn,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"-new-var","-new-var",1200468147,null),(function (){
return sci.impl.utils.new_var.cljs$core$IFn$_invoke$arity$2(cljs.core.gensym.cljs$core$IFn$_invoke$arity$0(),null);
})),cljs.core.unchecked_short,cljs.core.ffirst,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"condp","condp",1054325175,null),sci.impl.namespaces.condp_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"condp","condp",1054325175,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"pred","pred",-727012372,null),new cljs.core.Symbol(null,"expr","expr",-1908713478,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"clauses","clauses",-1199594528,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Takes a binary predicate, an expression, and a set of clauses.\n  Each clause can take the form of either:\n\n  test-expr result-expr\n\n  test-expr :>> result-fn\n\n  Note :>> is an ordinary keyword.\n\n  For each clause, (pred test-expr expr) is evaluated. If it returns\n  logical true, the clause is a match. If a binary clause matches, the\n  result-expr is returned, if a ternary clause matches, its result-fn,\n  which must be a unary function, is called with the result of the\n  predicate as its argument, the result of that call being the return\n  value of condp. A single default expression can follow the clauses,\n  and its value will be returned if no clause matches. If no default\n  expression is provided and no clause matches, an Error is thrown."], null)),cljs.core.munge,sci.impl.utils.current_file,cljs.core.unchecked_negate_int,sci.impl.io.print_str,cljs.core.vreset_BANG_,cljs.core.uuid_QMARK_,sci.impl.core_protocols.reset_BANG__STAR_,sci.impl.utils.new_var.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(null,"IRecord","IRecord",-903221169,null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"protocol","protocol",652470118),cljs.core.IRecord,new cljs.core.Keyword(null,"ns","ns",441598760),sci.impl.namespaces.clojure_core_ns], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ns","ns",441598760),sci.impl.namespaces.clojure_core_ns], null)),(new sci.lang.Var(sci.impl.namespaces.memfn,new cljs.core.Symbol(null,"memfn","memfn",-881453486,null),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"memfn","memfn",-881453486,null),new cljs.core.Keyword(null,"macro","macro",-867863404),true,new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"args","args",-1338879193,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Expands into code that creates a fn that expects to be passed an\n  object and any args and calls the named instance method on the\n  object passing the args. Use when you want to treat a JavaScript\n  method as a first-class fn.",new cljs.core.Keyword("sci","built-in","sci/built-in",1244659599),true,new cljs.core.Keyword(null,"ns","ns",441598760),sci.impl.namespaces.clojure_core_ns], null),false,null,null)),cljs.core.atom,cljs.core.select_keys,cljs.core.reverse,sci.impl.namespaces.ex_message,cljs.core.special_symbol_QMARK_,cljs.core.merge,cljs.core.inst_ms,sci.impl.io.newline,cljs.core.unchecked_multiply,sci.impl.io.print_readably,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"..","..",-300507420,null),sci.impl.namespaces.double_dot,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"..","..",-300507420,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"form","form",16469056,null)], null),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"form","form",16469056,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"more","more",-418290273,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"form => fieldName-symbol or (instanceMethodName-symbol args*)\n\n  Expands into a member access (.) of the first member on the first\n  argument, followed by the next member on the result, etc. For\n  instance:\n\n  (.. System (getProperties) (get \"os.name\"))\n\n  expands to:\n\n  (. (. System (getProperties)) (get \"os.name\"))\n\n  but is easier to write, read, and understand."], null)),cljs.core.chunked_seq_QMARK_,cljs.core.inst_QMARK_,cljs.core.random_sample,cljs.core._GT_,sci.impl.parser.read_eval,cljs.core.count,cljs.core.simple_ident_QMARK_,sci.impl.namespaces.sci_ns_name,sci.impl.namespaces._STAR_1,cljs.core.last,cljs.core.bit_shift_left,cljs.core.int$,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"defmacro","defmacro",2054157304,null),sci.impl.fns.defmacro_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"defmacro","defmacro",2054157304,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"doc-string?","doc-string?",393166599,null),new cljs.core.Symbol(null,"attr-map?","attr-map?",116307443,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"params*","params*",336153603,null)], null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"doc-string?","doc-string?",393166599,null),new cljs.core.Symbol(null,"attr-map?","attr-map?",116307443,null),cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"params*","params*",336153603,null)], null),new cljs.core.Symbol(null,"body","body",-408674142,null)),new cljs.core.Symbol(null,"+","+",-740910886,null),new cljs.core.Symbol(null,"attr-map?","attr-map?",116307443,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Like defn, but the resulting function name is declared as a\n  macro and will be used as a macro by the compiler when it is\n  called."], null)),cljs.core.unchecked_negate,cljs.core.volatile_QMARK_,sci.impl.multimethods.multi_fn_impl,cljs.core.unchecked_remainder_int,cljs.core.byte$,cljs.core.conj_BANG_,(new sci.lang.Var(sci.impl.namespaces.time,new cljs.core.Symbol(null,"time","time",-1268547887,null),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"time","time",-1268547887,null),new cljs.core.Keyword(null,"macro","macro",-867863404),true,new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"expr","expr",-1908713478,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates expr and prints the time it took. Returns the value of expr.",new cljs.core.Keyword("sci","built-in","sci/built-in",1244659599),true,new cljs.core.Keyword(null,"ns","ns",441598760),sci.impl.namespaces.clojure_core_ns], null),false,null,null)),sci.impl.io.println,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"defprotocol","defprotocol",1388695348,null),sci.impl.protocols.defprotocol,sci.impl.namespaces.clojure_core_ns,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"defprotocol","defprotocol",1388695348,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"psym","psym",752521989,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"doc+methods","doc+methods",2036080922,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"A protocol is a named set of named methods and their signatures:\n\n  (defprotocol AProtocolName\n    ;optional doc string\n    \"A doc string for AProtocol abstraction\"\n\n  ;method signatures\n    (bar [this a b] \"bar docs\")\n    (baz [this a] [this a b] [this a b c] \"baz docs\"))\n\n  No implementations are provided. Docs can be specified for the\n  protocol overall and for each method. The above yields a set of\n  polymorphic functions and a protocol object. All are\n  namespace-qualified by the ns enclosing the definition The resulting\n  functions dispatch on the type of their first argument, which is\n  required and corresponds to the implicit target object ('this' in\n  JavaScript parlance). defprotocol is dynamic, has no special compile-time\n  effect, and defines no new types.\n\n  (defprotocol P\n    (foo [this])\n    (bar-me [this] [this y]))\n\n  (deftype Foo [a b c]\n    P\n    (foo [this] a)\n    (bar-me [this] b)\n    (bar-me [this y] (+ c y)))\n\n  (bar-me (Foo. 1 2 3) 42)\n  => 45\n\n  (foo\n    (let [x 42]\n      (reify P\n        (foo [this] 17)\n        (bar-me [this] x)\n        (bar-me [this y] x))))\n  => 17"], null)),cljs.core.int_QMARK_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"defn","defn",-126010802,null),sci.impl.fns.defn_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"defn","defn",-126010802,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"doc-string?","doc-string?",393166599,null),new cljs.core.Symbol(null,"attr-map?","attr-map?",116307443,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"params*","params*",336153603,null)], null),new cljs.core.Symbol(null,"prepost-map?","prepost-map?",869562481,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"doc-string?","doc-string?",393166599,null),new cljs.core.Symbol(null,"attr-map?","attr-map?",116307443,null),cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"params*","params*",336153603,null)], null),new cljs.core.Symbol(null,"prepost-map?","prepost-map?",869562481,null),new cljs.core.Symbol(null,"body","body",-408674142,null)),new cljs.core.Symbol(null,"+","+",-740910886,null),new cljs.core.Symbol(null,"attr-map?","attr-map?",116307443,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Same as (def name (core/fn [params* ] exprs*)) or (def\n    name (core/fn ([params* ] exprs*)+)) with any doc-string or attrs added\n    to the var metadata. prepost-map defines a map with optional keys\n    :pre and :post that contain collections of pre or post conditions."], null)),sci.impl.namespaces.loaded_libs_STAR_,cljs.core.long_array,cljs.core.find,cljs.core.vals,cljs.core.nil_QMARK_,sci.impl.io.flush,cljs.core.hash,sci.impl.io.pr,sci.impl.destructure.destructure,cljs.core.unchecked_subtract,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"comment","comment",-2122229700,null),sci.impl.namespaces.comment_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"comment","comment",-2122229700,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Ignores body, yields nil"], null)),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"with-redefs","with-redefs",-1143728263,null),sci.impl.namespaces.sci_with_redefs,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"with-redefs","with-redefs",-1143728263,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"binding => var-symbol temp-value-expr\n\n  Temporarily redefines vars while executing the body.  The\n  temp-value-exprs will be evaluated and each resulting value will\n  replace in parallel the root value of its var.  After the body is\n  executed, the root values of all the vars will be set back to their\n  old values. Useful for mocking out functions during testing.\n\n  Note that under advanced compilation vars are statically resolved,\n  preventing with-redef usage.  If var redefinition is desired in a production\n  setting then the var to be redefined must be declared ^:dynamic."], null)),cljs.core.js_delete,cljs.core.float_QMARK_,cljs.core.second,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"extend-protocol","extend-protocol",306378578,null),sci.impl.protocols.extend_protocol,sci.impl.namespaces.clojure_core_ns,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"extend-protocol","extend-protocol",306378578,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"p","p",1791580836,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"specs","specs",-1227865028,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Useful when you want to provide several implementations of the same\n  protocol all at once. Takes a single protocol and the implementation\n  of that protocol for one or more types. Expands into calls to\n  extend-type:\n\n  (extend-protocol Protocol\n    AType\n      (foo [x] ...)\n      (bar [x y] ...)\n    BType\n      (foo [x] ...)\n      (bar [x y] ...)\n    AClass\n      (foo [x] ...)\n      (bar [x y] ...)\n    nil\n      (foo [x] ...)\n      (bar [x y] ...))\n\n  expands into:\n\n  (do\n   (clojure.core/extend-type AType Protocol \n     (foo [x] ...) \n     (bar [x y] ...))\n   (clojure.core/extend-type BType Protocol \n     (foo [x] ...) \n     (bar [x y] ...))\n   (clojure.core/extend-type AClass Protocol \n     (foo [x] ...) \n     (bar [x y] ...))\n   (clojure.core/extend-type nil Protocol \n     (foo [x] ...) \n     (bar [x y] ...)))"], null)),sci.impl.io.err,cljs.core.array_QMARK_,cljs.core.chunk_first,sci.impl.namespaces.sci_alias,cljs.core._write,cljs.core.unchecked_add_int,cljs.core.ifn_QMARK_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"loop","loop",1244978678,null),sci.impl.namespaces.loop_STAR__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"loop","loop",1244978678,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates the exprs in a lexical context in which the symbols in\n  the binding-forms are bound to their respective init-exprs or parts\n  therein. Acts as a recur target."], null)),cljs.core.ex_info,cljs.core.inc,cljs.core._SLASH_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"amap","amap",635923055,null),sci.impl.namespaces.amap_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"amap","amap",635923055,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"a","a",-482876059,null),new cljs.core.Symbol(null,"idx","idx",-1600747296,null),new cljs.core.Symbol(null,"ret","ret",1172308713,null),new cljs.core.Symbol(null,"expr","expr",-1908713478,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Maps an expression across an array a, using an index named idx, and\n  return value named ret, initialized to a clone of a, then setting\n  each element of ret to the evaluation of expr, returning the new\n  array ret."], null)),cljs.core.volatile_BANG_,cljs.core.with_meta,cljs.core.map_QMARK_,cljs.core.vector_QMARK_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"->>","->>",-1874332161,null),sci.impl.namespaces.__GT__GT__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"->>","->>",-1874332161,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"forms","forms",-608443419,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Threads the expr through the forms. Inserts x as the\n  last item in the first form, making a list of it if it is not a\n  list already. If there are more forms, inserts the first form as the\n  last item in second form, etc."], null)),cljs.core.quot,cljs.core.any_QMARK_,sci.impl.io.print_newline,sci.impl.load.load_reader,cljs.core.unchecked_add,cljs.core.Delay,cljs.core.floats,cljs.core.drop_while,cljs.core.bounded_count,cljs.core.take_while,sci.impl.protocols.extends_QMARK_,cljs.core.sort,cljs.core.false_QMARK_,cljs.core.cat,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"extend-type","extend-type",1123355921,null),sci.impl.protocols.extend_type,sci.impl.namespaces.clojure_core_ns,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"extend-type","extend-type",1123355921,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"type-sym","type-sym",-1942856509,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"impls","impls",326516674,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Extend a type to a series of protocols. Useful when you are\n  supplying the definitions explicitly inline. Propagates the\n  type as a type hint on the first argument of all fns.\n\n  type-sym may be\n\n   * default, meaning the definitions will apply for any value,\n     unless an extend-type exists for one of the more specific\n     cases below.\n   * nil, meaning the definitions will apply for the nil value.\n   * any of object, boolean, number, string, array, or function,\n     indicating the definitions will apply for values of the\n     associated base JavaScript types. Note that, for example,\n     string should be used instead of js/String.\n   * a JavaScript type not covered by the previous list, such\n     as js/RegExp.\n   * a type defined by deftype or defrecord.\n\n  (extend-type MyType\n    ICounted\n    (-count [c] ...)\n    Foo\n    (bar [x y] ...)\n    (baz ([x] ...) ([x y] ...) ...)"], null)),sci.impl.io.print_level,cljs.core.replace,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"doseq","doseq",221164135,null),sci.impl.doseq_macro.expand_doseq,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"doseq","doseq",221164135,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"seq-exprs","seq-exprs",-637209651,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Repeatedly executes body (presumably for side-effects) with\n  bindings and filtering as provided by \"for\".  Does not retain\n  the head of the sequence. Returns nil."], null)),cljs.core.drop,sci.impl.vars.push_thread_bindings,cljs.core.not,cljs.core.keep,cljs.core.cons,sci.impl.namespaces._STAR_e,cljs.core.bit_shift_right,cljs.core.associative_QMARK_,sci.impl.read.read,(function (){var G__46120 = sci.impl.utils.new_var.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(null,"unquote","unquote",-1004694737,null),null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ns","ns",441598760),sci.impl.namespaces.clojure_core_ns], null));
G__46120.sci$impl$vars$IVar$unbind$arity$1(null);

return G__46120;
})(),sci.impl.namespaces.macroexpand_STAR_,sci.impl.namespaces.sci_create_ns,sci.impl.io.print_err_fn,sci.impl.io.print_length,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"if-not","if-not",-265415609,null),sci.impl.namespaces.if_not_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"if-not","if-not",-265415609,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"test","test",-2076896892,null),new cljs.core.Symbol(null,"then","then",2101129597,null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"test","test",-2076896892,null),new cljs.core.Symbol(null,"then","then",2101129597,null),new cljs.core.Symbol(null,"else","else",132154381,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates test. If logical false, evaluates and returns then expr, \n  otherwise else expr, if supplied, else nil."], null)),cljs.core.chunk_next,sci.impl.vars.var_set,cljs.core.bit_flip,cljs.core.aset,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"-deref","-deref",-283116853,null),sci.impl.core_protocols._deref),sci.impl.utils.current_ns,cljs.core.some_fn,sci.impl.utils.var_QMARK_,sci.impl.io.print_meta,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"when-not","when-not",-1223136340,null),sci.impl.namespaces.when_not_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"when-not","when-not",-1223136340,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"test","test",-2076896892,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates test. If logical false, evaluates body in an implicit do."], null)),cljs.core.unchecked_multiply_int,cljs.core.identity,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"-reset!","-reset!",1965723739,null),sci.impl.core_protocols._reset_BANG_),cljs.core.to_array,cljs.core.double_array,cljs.core.sorted_map,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"-reified-methods","-reified-methods",1702712518,null),(function (p1__45992_SHARP_){
return sci.impl.types.getMethods(p1__45992_SHARP_);
})),cljs.core.concat,cljs.core.char$,cljs.core.ident_QMARK_,cljs.core.make_array,cljs.core.chunk_buffer,cljs.core.peek,cljs.core.hash_unordered_coll,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"when","when",1064114221,null),sci.impl.namespaces.when_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"when","when",1064114221,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"test","test",-2076896892,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates test. If logical true, evaluates body in an implicit do."], null)),cljs.core.clj__GT_js,cljs.core.sequence,cljs.core.group_by,cljs.core.re_seq,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"-swap!","-swap!",-535359318,null),sci.impl.core_protocols._swap_BANG_),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"when-some","when-some",1700415903,null),sci.impl.namespaces.when_some_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"when-some","when-some",1700415903,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"bindings => binding-form test\n\n   When test is not nil, evaluates body with binding-form bound to the\n   value of test"], null)),cljs.core.unchecked_subtract_int,cljs.core._LT__EQ_,cljs.core.prefers,cljs.core.vary_meta,cljs.core._EQ_,sci.impl.namespaces.sci_intern,cljs.core.keep_indexed,cljs.core.js_obj,cljs.core.every_QMARK_,cljs.core.comp,cljs.core.bit_set,cljs.core.dissoc,cljs.core.min,cljs.core.char_QMARK_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"with-open","with-open",172119667,null),sci.impl.namespaces.with_open_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"with-open","with-open",172119667,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),null,new cljs.core.Keyword(null,"doc","doc",1913296891),null], null)),cljs.core.interleave,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"declare","declare",654042991,null),sci.impl.namespaces.declare_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"declare","declare",654042991,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"names","names",-302543131,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"defs the supplied var names with no bindings, useful for making forward declarations."], null)),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"with-local-vars","with-local-vars",837642072,null),sci.impl.namespaces.with_local_vars_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"with-local-vars","with-local-vars",837642072,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),null,new cljs.core.Keyword(null,"doc","doc",1913296891),null], null)),sci.impl.namespaces.sci_bound_QMARK_,sci.impl.namespaces.sci_all_ns,cljs.core.split_at,cljs.core.neg_int_QMARK_,cljs.core.mapv,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"defonce","defonce",-1681484013,null),sci.impl.namespaces.defonce_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"defonce","defonce",-1681484013,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"init","init",-234949907,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"defs name to have the root value of init iff the named var has no root value,\n  else init is unevaluated"], null)),sci.impl.namespaces._add_loaded_lib,sci.impl.io.prn,cljs.core.drop_last,sci.impl.namespaces.with_bindings_STAR_,cljs.core.fnil,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"cond->>","cond->>",348844960,null),sci.impl.namespaces.cond__GT__GT__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"cond->>","cond->>",348844960,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"expr","expr",-1908713478,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"clauses","clauses",-1199594528,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Takes an expression and a set of test/form pairs. Threads expr (via ->>)\n  through each form for which the corresponding test expression\n  is true.  Note that, unlike cond branching, cond->> threading does not short circuit\n  after the first true test expression."], null)),sci.impl.vars.pop_thread_bindings,sci.impl.protocols.satisfies_QMARK_,cljs.core.next,cljs.core._PLUS_,sci.impl.load.load_string,cljs.core.name,cljs.core.unchecked_double,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"when-let","when-let",-1383043480,null),sci.impl.namespaces.when_let_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"when-let","when-let",-1383043480,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"bindings => binding-form test\n\n  When test is true, evaluates body with binding-form bound to the value of test"], null)),cljs.core.symbol_QMARK_,cljs.core.chunk_cons,cljs.core.disj_BANG_,cljs.core.__GT_Eduction,sci.impl.namespaces.sci_ns_imports,cljs.core.methods$,cljs.core.reset_meta_BANG_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"areduce","areduce",-1873477878,null),sci.impl.namespaces.areduce_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"areduce","areduce",-1873477878,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"a","a",-482876059,null),new cljs.core.Symbol(null,"idx","idx",-1600747296,null),new cljs.core.Symbol(null,"ret","ret",1172308713,null),new cljs.core.Symbol(null,"init","init",-234949907,null),new cljs.core.Symbol(null,"expr","expr",-1908713478,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Reduces an expression across an array a, using an index named idx,\n  and return value named ret, initialized to init, setting ret to the\n  evaluation of expr at each step, returning ret."], null)),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"ns","ns",2082130287,null),sci.impl.namespaces.ns_STAR_,null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"ns","ns",2082130287,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),null,new cljs.core.Keyword(null,"doc","doc",1913296891),null,new cljs.core.Keyword("sci.impl","fast-path","sci.impl/fast-path",1273254676),new cljs.core.Symbol(null,"ns","ns",2082130287,null)], null)),cljs.core.js__GT_clj,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"dotimes","dotimes",-818708397,null),sci.impl.namespaces.dotimes_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"dotimes","dotimes",-818708397,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"bindings => name n\n\n  Repeatedly executes body (presumably for side-effects) with name\n  bound to integers from 0 through n-1."], null)),cljs.core.rand_int,cljs.core.complement,cljs.core.list_QMARK_,cljs.core.aget,cljs.core.zipmap,sci.impl.namespaces.sci_find_var,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"for","for",316745208,null),sci.impl.for_macro.expand_for,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"for","for",316745208,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"seq-exprs","seq-exprs",-637209651,null),new cljs.core.Symbol(null,"body-expr","body-expr",-2125506601,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"List comprehension. Takes a vector of one or more\n   binding-form/collection-expr pairs, each followed by zero or more\n   modifiers, and yields a lazy sequence of evaluations of expr.\n   Collections are iterated in a nested fashion, rightmost fastest,\n   and nested coll-exprs can refer to bindings created in prior\n   binding-forms.  Supported modifiers are: :let [binding-form expr ...],\n   :while test, :when test.\n\n  (take 100 (for [x (range 100000000) y (range 1000000) :while (< y x)]  [x y]))"], null)),cljs.core.run_BANG_,cljs.core._EQ__EQ_,cljs.core.chars,cljs.core.iterate,cljs.core.boolean$,cljs.core.hash_ordered_coll,cljs.core.hash_map,cljs.core.unchecked_inc,cljs.core.max_key,cljs.core.qualified_ident_QMARK_,cljs.core.dissoc_BANG_,cljs.core.coll_QMARK_,cljs.core.reversible_QMARK_,sci.impl.namespaces.sci_ns_unmap,cljs.core.apply,sci.impl.io.in$,cljs.core.subvec,sci.impl.hierarchies.isa_QMARK__STAR_,cljs.core.not_every_QMARK_,sci.impl.namespaces.ex_cause,cljs.core.keyword_QMARK_,cljs.core.ex_data,sci.impl.io.print_namespace_maps,cljs.core.compare,sci.impl.hierarchies.underive_STAR_,cljs.core.transduce,sci.impl.io.flush_on_newline,cljs.core.range,sci.impl.core_protocols.deref_protocol,cljs.core.sorted_QMARK_,cljs.core.frequencies,cljs.core.cycle,cljs.core.max,cljs.core.simple_symbol_QMARK_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"reify","reify",1885539699,null),sci.impl.reify.reify,sci.impl.namespaces.clojure_core_ns,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"reify","reify",1885539699,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"impls","impls",326516674,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"reify creates an object implementing a protocol.\n  reify is a macro with the following structure:\n\n (reify options* specs*)\n\n  Currently there are no options.\n\n  Each spec consists of the protocol name followed by zero\n  or more method bodies:\n\n  protocol\n  (methodName [args+] body)*\n\n  Methods should be supplied for all methods of the desired\n  protocol(s). You can also define overrides for Object methods. Note that\n  the first parameter must be supplied to correspond to the target object\n  ('this' in JavaScript parlance). Note also that recur calls\n  to the method head should *not* pass the target object, it will be supplied\n  automatically and can not be substituted.\n\n  recur works to method heads The method bodies of reify are lexical\n  closures, and can refer to the surrounding local scope:\n\n  (str (let [f \"foo\"]\n       (reify Object\n         (toString [this] f))))\n  == \"foo\"\n\n  (seq (let [f \"foo\"]\n       (reify ISeqable\n         (-seq [this] (seq f)))))\n  == (\"f\" \"o\" \"o\"))\n\n  reify always implements IMeta and IWithMeta and transfers meta\n  data of the form to the created object.\n\n  (meta ^{:k :v} (reify Object (toString [this] \"foo\")))\n  == {:k :v}"], null)),cljs.core.empty_QMARK_,cljs.core.into,cljs.core.integer_QMARK_,cljs.core._STAR_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"some->>","some->>",-1499987794,null),sci.impl.namespaces.some__GT__GT__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"some->>","some->>",-1499987794,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"expr","expr",-1908713478,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"forms","forms",-608443419,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"When expr is not nil, threads it into the first form (via ->>),\n  and when that result is not nil, through the next etc"], null)),cljs.core.unsigned_bit_shift_right,sci.impl.io.pr_str,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"some->","some->",-1011172200,null),sci.impl.namespaces.some__GT__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"some->","some->",-1011172200,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"expr","expr",-1908713478,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"forms","forms",-608443419,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"When expr is not nil, threads it into the first form (via ->),\n  and when that result is not nil, through the next etc"], null)),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"bound-fn","bound-fn",125411266,null),sci.impl.namespaces.sci_bound_fn,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"bound-fn","bound-fn",125411266,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),null,new cljs.core.Keyword(null,"doc","doc",1913296891),null], null)),cljs.core.aget,cljs.core.chunk,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"cond","cond",1606708055,null),sci.impl.namespaces.cond_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"cond","cond",1606708055,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"clauses","clauses",-1199594528,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Takes a set of test/expr pairs. It evaluates each test one at a\n  time.  If a test returns logical true, cond evaluates and returns\n  the value of the corresponding expr and doesn't evaluate any of the\n  other tests or exprs. (cond) returns nil."], null)),cljs.core.distinct,cljs.core.ensure_reduced,cljs.core.object_array,cljs.core.juxt,cljs.core.some,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"let","let",358118826,null),sci.impl.namespaces.let_STAR__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"let","let",358118826,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"binding => binding-form init-expr\n  binding-form => name, or destructuring-form\n  destructuring-form => map-destructure-form, or seq-destructure-form\n\n  Evaluates the exprs in a lexical context in which the symbols in\n  the binding-forms are bound to their respective init-exprs or parts\n  therein.\n\n  See https://clojure.org/reference/special_forms#binding-forms for\n  more information about destructuring."], null)),cljs.core.interpose,sci.impl.namespaces.sci_the_ns,sci.impl.protocols.instance_impl,sci.impl.hierarchies.descendants_STAR_,cljs.core.get_in,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"fn","fn",465265323,null),sci.impl.fns.fn_STAR__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"fn","fn",465265323,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"sigs","sigs",-12588095,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"params => positional-params* , or positional-params* & next-param\n  positional-param => binding-form\n  next-param => binding-form\n  name => symbol\n\n  Defines a function"], null)),cljs.core.meta,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(null,"reify*","reify*",1646945123,null),sci.impl.reify.reify_STAR_,sci.impl.namespaces.clojure_core_ns),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"defrecord","defrecord",273038109,null),sci.impl.records.defrecord,sci.impl.namespaces.clojure_core_ns,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"defrecord","defrecord",273038109,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"rsym","rsym",204230332,null),new cljs.core.Symbol(null,"fields","fields",-291534703,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"impls","impls",326516674,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"(defrecord name [fields*]  options* specs*)\n\n  Currently there are no options.\n\n  Each spec consists of a protocol or interface name followed by zero\n  or more method bodies:\n\n  protocol-or-Object\n  (methodName [args*] body)*\n\n  The record will have the (immutable) fields named by\n  fields, which can have type hints. Protocols and methods\n  are optional. The only methods that can be supplied are those\n  declared in the protocols.  Note that method bodies are\n  not closures, the local environment includes only the named fields,\n  and those fields can be accessed directly.\n\n  Method definitions take the form:\n\n  (methodname [args*] body)\n\n  The argument and return types can be hinted on the arg and\n  methodname symbols. If not supplied, they will be inferred, so type\n  hints should be reserved for disambiguation.\n\n  Methods should be supplied for all methods of the desired\n  protocol(s). You can also define overrides for\n  methods of Object. Note that a parameter must be supplied to\n  correspond to the target object ('this' in JavaScript parlance). Note also\n  that recur calls to the method head should *not* pass the target object, it\n  will be supplied automatically and can not be substituted.\n\n  In the method bodies, the (unqualified) name can be used to name the\n  class (for calls to new, instance? etc).\n\n  The type will have implementations of several ClojureScript\n  protocol generated automatically: IMeta/IWithMeta (metadata support) and\n  IMap, etc.\n\n  In addition, defrecord will define type-and-value-based =,\n  and will define ClojureScript IHash and IEquiv.\n\n  Two constructors will be defined, one taking the designated fields\n  followed by a metadata map (nil for none) and an extension field\n  map (nil for none), and one taking only the fields (using nil for\n  meta and extension fields). Note that the field names __meta\n  and __extmap are currently reserved and should not be used when\n  defining your own records.\n\n  Given (defrecord TypeName ...), two factory functions will be\n  defined: ->TypeName, taking positional parameters for the fields,\n  and map->TypeName, taking a map of keywords to field values."], null)),cljs.core.val,sci.impl.read.read_string,cljs.core.aclone,cljs.core.assoc_in,cljs.core.zero_QMARK_,cljs.core.transient$,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"letfn","letfn",-480490827,null),sci.impl.namespaces.letfn_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"letfn","letfn",-480490827,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"fnspecs","fnspecs",-958581686,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"fnspec ==> (fname [params*] exprs) or (fname ([params*] exprs)+)\n\n  Takes a vector of function specs and a body, and generates a set of\n  bindings of functions to their names. All of the names are available\n  in all of the definitions of the functions, as well as the body."], null)),cljs.core.realized_QMARK_,cljs.core.list_STAR_,sci.impl.namespaces.sci_ns_interns,cljs.core.memoize,cljs.core.subseq,cljs.core.delay_QMARK_,cljs.core.completing,cljs.core.unchecked_divide_int,cljs.core.shuffle,sci.impl.namespaces.sci_ns_map,sci.impl.io.prn_str,sci.impl.namespaces.sci_in_ns,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"defn-","defn-",1097765044,null),sci.impl.namespaces.defn__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"defn-","defn-",1097765044,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"decls","decls",-1311111277,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"same as defn, yielding non-public def"], null)),cljs.core.compare_and_set_BANG_,sci.impl.namespaces.use,cljs.core.longs,sci.impl.namespaces.sci_remove_ns,cljs.core.unchecked_int,cljs.core.nthrest,sci.impl.namespaces.sci_thread_bound_QMARK_,sci.impl.parser.reader_resolver,cljs.core.doubles,cljs.core.force,cljs.core.remove_method,cljs.core.system_time,sci.impl.protocols.extend,cljs.core.nnext,cljs.core.dec,cljs.core.qualified_keyword_QMARK_,cljs.core.comparator,cljs.core.take_last,sci.impl.namespaces.sci_find_ns,cljs.core.string_QMARK_,sci.impl.io.print,sci.impl.namespaces.assert_var,cljs.core.bit_xor,cljs.core.map,cljs.core.float$,cljs.core.chunk_append,sci.impl.core_protocols.deref_STAR_,cljs.core.re_pattern,cljs.core.repeat,cljs.core.reduce,cljs.core.qualified_symbol_QMARK_,sci.impl.namespaces.eval_STAR_,cljs.core.vector,cljs.core.doall,(new sci.lang.Var(sci.impl.namespaces.exists_QMARK_,new cljs.core.Symbol(null,"exists?","exists?",-1239962053,null),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"exists?","exists?",-1239962053,null),new cljs.core.Keyword(null,"macro","macro",-867863404),true,new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Return true if argument exists, analogous to usage of typeof operator\n   in JavaScript.",new cljs.core.Keyword("sci","built-in","sci/built-in",1244659599),true,new cljs.core.Keyword(null,"ns","ns",441598760),sci.impl.namespaces.clojure_core_ns], null),false,null,null)),cljs.core.assoc_BANG_,cljs.core.not_EQ_,sci.impl.namespaces.alter_meta_BANG_,cljs.core.constantly,cljs.core.seq_QMARK_,cljs.core.js_keys,cljs.core.get,sci.impl.namespaces.require,cljs.core.key,cljs.core.bit_and_not,cljs.core.mapcat,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"cond->","cond->",561741875,null),sci.impl.namespaces.cond__GT__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"cond->","cond->",561741875,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"expr","expr",-1908713478,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"clauses","clauses",-1199594528,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Takes an expression and a set of test/form pairs. Threads expr (via ->)\n  through each form for which the corresponding test\n  expression is true. Note that, unlike cond branching, cond-> threading does\n  not short circuit after the first true test expression."], null)),cljs.core.nat_int_QMARK_,cljs.core.demunge,cljs.core.get_method,sci.impl.io.out,cljs.core.str,cljs.core.empty,cljs.core.counted_QMARK_,cljs.core.set_QMARK_,cljs.core.alength,cljs.core.filterv,cljs.core.reductions,cljs.core.booleans,cljs.core._LT_,cljs.core.reduced,cljs.core.halt_when,cljs.core.namespace,cljs.core.keyword,sci.impl.namespaces.bound_fn_STAR_,cljs.core.record_QMARK_,cljs.core.tagged_literal_QMARK_,cljs.core._,cljs.core.bit_and,cljs.core.unreduced,cljs.core.assoc,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"defmulti","defmulti",1936112154,null),sci.impl.multimethods.defmulti,sci.impl.namespaces.clojure_core_ns,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"defmulti","defmulti",1936112154,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"docstring?","docstring?",-180217883,null),new cljs.core.Symbol(null,"attr-map?","attr-map?",116307443,null),new cljs.core.Symbol(null,"dispatch-fn","dispatch-fn",-1401088155,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"options","options",1740170016,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Creates a new multimethod with the associated dispatch function.\n  The docstring and attribute-map are optional.\n\n  Options are key-value pairs and may be one of:\n    :default    the default dispatch value, defaults to :default\n    :hierarchy  the isa? hierarchy to use for dispatching\n                defaults to the global hierarchy"], null)),cljs.core.partition_all,cljs.core.bit_not,cljs.core.some_QMARK_,cljs.core.pos_QMARK_,cljs.core.trampoline,cljs.core.rand,cljs.core.re_matches,cljs.core.boolean_QMARK_,cljs.core.every_pred,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"locking","locking",1542862874,null),sci.impl.namespaces.locking_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"locking","locking",1542862874,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"forms","forms",-608443419,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),null], null)),cljs.core.fn_QMARK_,cljs.core.sequential_QMARK_,cljs.core.list,cljs.core.sorted_set_by,cljs.core.nthnext,cljs.core.eduction,cljs.core.rand_nth,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"delay","delay",1066306308,null),sci.impl.namespaces.delay_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"delay","delay",1066306308,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Takes a body of expressions and yields a Delay object that will\n  invoke the body only the first time it is forced (with force or deref/@), and\n  will cache the result and return it on all subsequent force\n  calls."], null)),cljs.core.partial,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"with-bindings","with-bindings",-1197589787,null),sci.impl.namespaces.sci_with_bindings,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"with-bindings","with-bindings",-1197589787,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),null,new cljs.core.Keyword(null,"doc","doc",1913296891),null], null)),cljs.core.rsubseq,cljs.core.contains_QMARK_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"->","->",-2139605430,null),sci.impl.namespaces.__GT__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"->","->",-2139605430,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"forms","forms",-608443419,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Threads the expr through the forms. Inserts x as the\n  second item in the first form, making a list of it if it is not a\n  list already. If there are more forms, inserts the first form as the\n  second item in second form, etc."], null)),cljs.core.shorts,cljs.core.random_uuid,sci.impl.core_protocols.swap_protocol,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"as->","as->",1430690540,null),sci.impl.namespaces.as__GT__STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"as->","as->",1430690540,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"expr","expr",-1908713478,null),new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"forms","forms",-608443419,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Binds name to expr, evaluates the first form in the lexical context\n  of that binding, then binds name to that result, repeating for each\n  successive form, returning the result of the last form."], null)),cljs.core.hash_set,cljs.core.take,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"if-let","if-let",1803593690,null),sci.impl.namespaces.if_let_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"if-let","if-let",1803593690,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"then","then",2101129597,null)], null),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"then","then",2101129597,null),new cljs.core.Symbol(null,"else","else",132154381,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"oldform","oldform",1995222417,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"bindings => binding-form test\n\n  If test is true, evaluates then with binding-form bound to the value of \n  test, if not, yields else"], null)),sci.impl.namespaces.macroexpand_1_STAR_,cljs.core.split_with,sci.impl.namespaces.sci_refer,sci.impl.vars.binding_conveyor_fn,cljs.core.make_hierarchy,cljs.core.tagged_literal,sci.impl.namespaces.has_root_impl,sci.impl.hierarchies.parents_STAR_,cljs.core.test,cljs.core.vec,cljs.core.nth,sci.impl.namespaces.clojure_core_ns,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"lazy-cat","lazy-cat",-89906116,null),sci.impl.namespaces.lazy_cat_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"lazy-cat","lazy-cat",-89906116,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"colls","colls",-397642425,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Expands to code which yields a lazy sequence of the concatenation\n  of the supplied colls.  Each coll expr is not evaluated until it is\n  needed.\n\n  (lazy-cat xs ys zs) === (concat (lazy-seq xs) (lazy-seq ys) (lazy-seq zs))"], null)),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"if-some","if-some",1960677609,null),sci.impl.namespaces.if_some_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"if-some","if-some",1960677609,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"then","then",2101129597,null)], null),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"then","then",2101129597,null),new cljs.core.Symbol(null,"else","else",132154381,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"oldform","oldform",1995222417,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"bindings => binding-form test\n\n   If test is not nil, evaluates then with binding-form bound to the\n   value of test, if not, yields else"], null)),cljs.core.subs,sci.impl.parser.default_data_reader_fn,cljs.core.to_array_2d,sci.impl.namespaces.symbol_STAR_,cljs.core.mod,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"lazy-seq","lazy-seq",489632906,null),sci.impl.namespaces.lazy_seq_STAR_,null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"lazy-seq","lazy-seq",489632906,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Takes a body of expressions that returns an ISeq or nil, and yields\n  a ISeqable object that will invoke the body only the first time seq\n  is called, and will cache the result and return it on all subsequent\n  seq calls.",new cljs.core.Keyword("sci.impl","fast-path","sci.impl/fast-path",1273254676),new cljs.core.Symbol(null,"lazy-seq","lazy-seq",489632906,null)], null)),cljs.core.number_QMARK_,cljs.core.reduced_QMARK_,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"-new-dynamic-var","-new-dynamic-var",-1029088918,null),(function (){
return sci.impl.utils.new_var.cljs$core$IFn$_invoke$arity$3(cljs.core.gensym.cljs$core$IFn$_invoke$arity$0(),null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"dynamic","dynamic",704819571),true], null));
})),cljs.core.object_QMARK_,cljs.core.conj,cljs.core.bytes,cljs.core.unchecked_float,cljs.core.LazySeq,cljs.core.bit_test,cljs.core.sorted_map_by,cljs.core.double_QMARK_,cljs.core.rseq,cljs.core.unchecked_long,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"binding","binding",-2114503176,null),sci.impl.namespaces.sci_binding,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"binding","binding",-2114503176,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"bindings","bindings",-1383038577,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"binding => var-symbol init-expr\n\n  Creates new bindings for the (already-existing) vars, with the\n  supplied initial values, executes the exprs in an implicit do, then\n  re-establishes the bindings that existed before.  The new bindings\n  are made in parallel (unlike let); all init-exprs are evaluated\n  before the vars are bound to their new values."], null)),cljs.core.double$,cljs.core.unchecked_dec,cljs.core.tree_seq,sci.impl.multimethods.multi_fn_add_method_impl,cljs.core.seqable_QMARK_,sci.impl.core_protocols.swap_BANG__STAR_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"vswap!","vswap!",-574070781,null),sci.impl.namespaces.vswap_BANG_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"vswap!","vswap!",-574070781,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"vol","vol",1137570949,null),new cljs.core.Symbol(null,"f","f",43394975,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"args","args",-1338879193,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Non-atomically swaps the value of the volatile as if:\n   (apply f current-value-of-vol args). Returns the value that\n   was swapped in."], null)),cljs.core.array_map,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"reset-thread-binding-frame-impl","reset-thread-binding-frame-impl",-826674194,null),sci.impl.vars.reset_thread_binding_frame),cljs.core.dedupe,cljs.core.short$,cljs.core.update,cljs.core.filter,cljs.core.unchecked_dec_int,sci.impl.namespaces._STAR_3,sci.impl.namespaces.sci_requiring_resolve,cljs.core.rem,cljs.core.pop,cljs.core.merge_with,cljs.core.long$,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"assert","assert",677428501,null),sci.impl.namespaces.assert_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"assert","assert",677428501,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"message","message",1234475525,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates expr and throws an exception if it does not evaluate to\n  logical true."], null)),cljs.core.array,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"refer-clojure","refer-clojure",-1840651329,null),sci.impl.namespaces.sci_refer_clojure,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"refer-clojure","refer-clojure",-1840651329,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"args","args",-1338879193,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Refers to all the public vars of `cljs.core`, subject to\n  filters.\n  Filters can include at most one each of:\n\n  :exclude list-of-symbols\n  :rename map-of-fromsymbol-tosymbol\n\n  Filters can be used to select a subset, via exclusion, or to provide a mapping\n  to a symbol different from the var's name, in order to prevent clashes."], null)),cljs.core.flatten,cljs.core.distinct_QMARK_,cljs.core.map_indexed,sci.impl.namespaces.sci_ns_publics,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"protocol-type-impl","protocol-type-impl",561934718,null),sci.impl.types.type_impl),cljs.core.even_QMARK_,sci.impl.vars.var_get,sci.impl.multimethods.multi_fn_QMARK__impl,sci.impl.vars.alter_var_root,sci.impl.types.type_impl2,cljs.core.neg_QMARK_,cljs.core.gensym,sci.impl.namespaces.sci_resolve,cljs.core.add_watch,cljs.core.not_any_QMARK_,cljs.core.take_nth,cljs.core.dorun,cljs.core.remove_all_methods,cljs.core.not_empty,sci.impl.parser.suppress_read,sci.impl.namespaces.sci_ns_aliases,sci.impl.io.print_dup_var,sci.impl.namespaces.sci_ns_resolve,sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"get-thread-binding-frame-impl","get-thread-binding-frame-impl",-701667726,null),sci.impl.vars.get_thread_binding_frame),cljs.core.chunk_rest,cljs.core.remove_watch,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"or","or",1876275696,null),sci.impl.namespaces.or_STAR_,null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"or","or",1876275696,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"x","x",-555367584,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"next","next",1522830042,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Evaluates exprs one at a time, from left to right. If a form\n  returns a logical true value, or returns that value and doesn't\n  evaluate any of the other expressions, otherwise it returns the\n  value of the last expression. (or) returns nil.",new cljs.core.Keyword("sci.impl","fast-path","sci.impl/fast-path",1273254676),new cljs.core.Symbol(null,"or","or",1876275696,null)], null)),cljs.core.int_array,cljs.core.pos_int_QMARK_,cljs.core.undefined_QMARK_,cljs.core.ints,cljs.core.identical_QMARK_,cljs.core.persistent_BANG_,sci.impl.core_protocols.reset_protocol,cljs.core.indexed_QMARK_,cljs.core.min_key,cljs.core.repeatedly,cljs.core.set,cljs.core.remove,cljs.core.keyword_identical_QMARK_,sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"while","while",-1691317983,null),sci.impl.namespaces.while_STAR_,null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"while","while",-1691317983,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),cljs.core.list(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"test","test",-2076896892,null),new cljs.core.Symbol(null,"&","&",-2144855648,null),new cljs.core.Symbol(null,"body","body",-408674142,null)], null)),new cljs.core.Keyword(null,"doc","doc",1913296891),"Repeatedly executes body while test expression is true. Presumes\n  some side-effect will cause test to become false/nil. Returns nil"], null)),cljs.core.re_find,cljs.core.PersistentQueue,cljs.core.seq_to_map_for_destructuring]);

sci.impl.namespaces.dir_fn = (function sci$impl$namespaces$dir_fn(ns){
var ctx = sci.ctx_store.get_ctx();
var current_ns = sci.impl.utils.current_ns_name();
var the_ns = sci.impl.namespaces.sci_the_ns_STAR_(ctx,cljs.core.get.cljs$core$IFn$_invoke$arity$3(sci.impl.namespaces.sci_ns_aliases_STAR_(ctx,current_ns),ns,ns));
return cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,sci.impl.namespaces.sci_ns_publics_STAR_(ctx,the_ns)));
});

sci.impl.namespaces.dir = (function sci$impl$namespaces$dir(_,___$1,nsname){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","doseq","cljs.core/doseq",-169320766,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"v__46023__auto__","v__46023__auto__",582807379,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("clojure.repl","dir-fn","clojure.repl/dir-fn",901908317,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,nsname,null,(1),null))))),null,(1),null))))),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","println","cljs.core/println",-331834442,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"v__46023__auto__","v__46023__auto__",582807379,null),null,(1),null))))),null,(1),null))], 0))));
});

sci.impl.namespaces.print_doc = (function sci$impl$namespaces$print_doc(m){
var arglists = new cljs.core.Keyword(null,"arglists","arglists",1661989754).cljs$core$IFn$_invoke$arity$1(m);
var doc = new cljs.core.Keyword(null,"doc","doc",1913296891).cljs$core$IFn$_invoke$arity$1(m);
var macro_QMARK_ = new cljs.core.Keyword(null,"macro","macro",-867863404).cljs$core$IFn$_invoke$arity$1(m);
sci.impl.io.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["-------------------------"], 0));

sci.impl.io.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[(function (){var temp__5804__auto__ = new cljs.core.Keyword(null,"ns","ns",441598760).cljs$core$IFn$_invoke$arity$1(m);
if(cljs.core.truth_(temp__5804__auto__)){
var ns_STAR_ = temp__5804__auto__;
return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(sci.impl.types.getName(ns_STAR_)),"/"].join('');
} else {
return null;
}
})(),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(m))].join('')], 0));

if(cljs.core.truth_(arglists)){
sci.impl.io.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([arglists], 0));
} else {
}

if(cljs.core.truth_(macro_QMARK_)){
sci.impl.io.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Macro"], 0));
} else {
}

if(cljs.core.truth_(doc)){
return sci.impl.io.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([" ",doc], 0));
} else {
return null;
}
});

sci.impl.namespaces.doc = (function sci$impl$namespaces$doc(_,___$1,sym){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","if-let","cljs.core/if-let",1346583165,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"var__46026__auto__","var__46026__auto__",-124690440,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","resolve","cljs.core/resolve",1796776582,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null))))),null,(1),null))))),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","when","cljs.core/when",120293186,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","var?","cljs.core/var?",1711182854,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"var__46026__auto__","var__46026__auto__",-124690440,null),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("clojure.repl","print-doc","clojure.repl/print-doc",-375546711,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","meta","cljs.core/meta",-748218346,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"var__46026__auto__","var__46026__auto__",-124690440,null),null,(1),null))))),null,(1),null))))),null,(1),null))], 0)))),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","if-let","cljs.core/if-let",1346583165,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"ns__46027__auto__","ns__46027__auto__",2044674998,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","find-ns","cljs.core/find-ns",-486459417,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,sym,null,(1),null))))),null,(1),null))))),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("clojure.repl","print-doc","clojure.repl/print-doc",-375546711,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","assoc","cljs.core/assoc",322326297,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","meta","cljs.core/meta",-748218346,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"ns__46027__auto__","ns__46027__auto__",2044674998,null),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Keyword(null,"name","name",1843675177),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","ns-name","cljs.core/ns-name",171430027,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"ns__46027__auto__","ns__46027__auto__",2044674998,null),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))], 0))));
});

/**
 * Prints documentation for any var whose documentation or name
 * contains a match for re-string-or-pattern
 */
sci.impl.namespaces.find_doc = (function sci$impl$namespaces$find_doc(re_string_or_pattern){
var re = cljs.core.re_pattern(re_string_or_pattern);
var ans = sci.impl.namespaces.sci_all_ns();
var ctx = sci.ctx_store.get_ctx();
var ms = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p1__46029_SHARP_){
return cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"name","name",1843675177),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.meta,cljs.core.vals(sci.impl.namespaces.sci_ns_interns_STAR_(ctx,p1__46029_SHARP_))));
}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ans], 0)),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__46030_SHARP_){
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.meta(p1__46030_SHARP_),new cljs.core.Keyword(null,"name","name",1843675177),sci.impl.types.getName(p1__46030_SHARP_));
}),ans));
var seq__46276 = cljs.core.seq(ms);
var chunk__46278 = null;
var count__46279 = (0);
var i__46280 = (0);
while(true){
if((i__46280 < count__46279)){
var m = chunk__46278.cljs$core$IIndexed$_nth$arity$2(null,i__46280);
if(cljs.core.truth_((function (){var and__5023__auto__ = new cljs.core.Keyword(null,"doc","doc",1913296891).cljs$core$IFn$_invoke$arity$1(m);
if(cljs.core.truth_(and__5023__auto__)){
var or__5025__auto__ = cljs.core.re_find(re,new cljs.core.Keyword(null,"doc","doc",1913296891).cljs$core$IFn$_invoke$arity$1(m));
if(cljs.core.truth_(or__5025__auto__)){
return or__5025__auto__;
} else {
return cljs.core.re_find(re,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(m)));
}
} else {
return and__5023__auto__;
}
})())){
sci.impl.namespaces.print_doc(m);


var G__46858 = seq__46276;
var G__46859 = chunk__46278;
var G__46860 = count__46279;
var G__46861 = (i__46280 + (1));
seq__46276 = G__46858;
chunk__46278 = G__46859;
count__46279 = G__46860;
i__46280 = G__46861;
continue;
} else {
var G__46864 = seq__46276;
var G__46865 = chunk__46278;
var G__46866 = count__46279;
var G__46867 = (i__46280 + (1));
seq__46276 = G__46864;
chunk__46278 = G__46865;
count__46279 = G__46866;
i__46280 = G__46867;
continue;
}
} else {
var temp__5804__auto__ = cljs.core.seq(seq__46276);
if(temp__5804__auto__){
var seq__46276__$1 = temp__5804__auto__;
if(cljs.core.chunked_seq_QMARK_(seq__46276__$1)){
var c__5548__auto__ = cljs.core.chunk_first(seq__46276__$1);
var G__46872 = cljs.core.chunk_rest(seq__46276__$1);
var G__46873 = c__5548__auto__;
var G__46874 = cljs.core.count(c__5548__auto__);
var G__46875 = (0);
seq__46276 = G__46872;
chunk__46278 = G__46873;
count__46279 = G__46874;
i__46280 = G__46875;
continue;
} else {
var m = cljs.core.first(seq__46276__$1);
if(cljs.core.truth_((function (){var and__5023__auto__ = new cljs.core.Keyword(null,"doc","doc",1913296891).cljs$core$IFn$_invoke$arity$1(m);
if(cljs.core.truth_(and__5023__auto__)){
var or__5025__auto__ = cljs.core.re_find(re,new cljs.core.Keyword(null,"doc","doc",1913296891).cljs$core$IFn$_invoke$arity$1(m));
if(cljs.core.truth_(or__5025__auto__)){
return or__5025__auto__;
} else {
return cljs.core.re_find(re,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(m)));
}
} else {
return and__5023__auto__;
}
})())){
sci.impl.namespaces.print_doc(m);


var G__46878 = cljs.core.next(seq__46276__$1);
var G__46879 = null;
var G__46880 = (0);
var G__46881 = (0);
seq__46276 = G__46878;
chunk__46278 = G__46879;
count__46279 = G__46880;
i__46280 = G__46881;
continue;
} else {
var G__46882 = cljs.core.next(seq__46276__$1);
var G__46884 = null;
var G__46885 = (0);
var G__46886 = (0);
seq__46276 = G__46882;
chunk__46278 = G__46884;
count__46279 = G__46885;
i__46280 = G__46886;
continue;
}
}
} else {
return null;
}
}
break;
}
});

/**
 * Given a regular expression or stringable thing, return a seq of all
 * public definitions in all currently-loaded namespaces that match the
 * str-or-pattern.
 */
sci.impl.namespaces.apropos = (function sci$impl$namespaces$apropos(str_or_pattern){
var ctx = sci.ctx_store.get_ctx();
var matches_QMARK_ = (((str_or_pattern instanceof RegExp))?(function (p1__46031_SHARP_){
return cljs.core.re_find(str_or_pattern,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__46031_SHARP_));
}):(function (p1__46032_SHARP_){
return clojure.string.includes_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__46032_SHARP_),cljs.core.str.cljs$core$IFn$_invoke$arity$1(str_or_pattern));
}));
return cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (ns){
var ns_name = cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns);
return cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__46033_SHARP_){
return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(ns_name,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__46033_SHARP_));
}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2(matches_QMARK_,cljs.core.keys(sci.impl.namespaces.sci_ns_publics_STAR_(ctx,ns))));
}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sci.impl.namespaces.sci_all_ns()], 0)));
});

/**
 * Returns a string of the source code for the given symbol, if it can
 * find it.  This requires that the symbol resolve to a Var defined in
 * a namespace for which the .clj is in the classpath.  Returns nil if
 * it can't find the source.  For most REPL usage, 'source' is more
 * convenient.
 * 
 * Example: (source-fn 'filter)
 */
sci.impl.namespaces.source_fn = (function sci$impl$namespaces$source_fn(x){
var ctx = sci.ctx_store.get_ctx();
var temp__5804__auto__ = sci.impl.namespaces.sci_resolve_STAR_.cljs$core$IFn$_invoke$arity$2(ctx,x);
if(cljs.core.truth_(temp__5804__auto__)){
var v = temp__5804__auto__;
var map__46304 = cljs.core.meta(v);
var map__46304__$1 = cljs.core.__destructure_map(map__46304);
var line = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46304__$1,new cljs.core.Keyword(null,"line","line",212345235));
var ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__46304__$1,new cljs.core.Keyword(null,"ns","ns",441598760));
if(cljs.core.truth_((function (){var and__5023__auto__ = line;
if(cljs.core.truth_(and__5023__auto__)){
return ns;
} else {
return and__5023__auto__;
}
})())){
var temp__5804__auto____$1 = (function (){var temp__5804__auto____$1 = new cljs.core.Keyword(null,"load-fn","load-fn",-2121144334).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx)));
if(cljs.core.truth_(temp__5804__auto____$1)){
var load_fn = temp__5804__auto____$1;
return new cljs.core.Keyword(null,"source","source",-433931539).cljs$core$IFn$_invoke$arity$1((function (){var G__46310 = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"namespace","namespace",-377510372),sci.impl.types.getName(ns)], null);
return (load_fn.cljs$core$IFn$_invoke$arity$1 ? load_fn.cljs$core$IFn$_invoke$arity$1(G__46310) : load_fn.call(null,G__46310));
})());
} else {
return null;
}
})();
if(cljs.core.truth_(temp__5804__auto____$1)){
var source = temp__5804__auto____$1;
var lines = clojure.string.split.cljs$core$IFn$_invoke$arity$2(source,/\n/);
var line__$1 = (line - (1));
var start = clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n",cljs.core.drop.cljs$core$IFn$_invoke$arity$2(line__$1,lines));
var reader = sci.impl.read.source_logging_reader(start);
var res = sci.impl.parser.parse_next.cljs$core$IFn$_invoke$arity$3(ctx,reader,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"source","source",-433931539),true], null));
return new cljs.core.Keyword(null,"source","source",-433931539).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(res));
} else {
return null;
}
} else {
return null;
}
} else {
return null;
}
});

/**
 * Prints the source code for the given symbol, if it can find it.
 * This requires that the symbol resolve to a Var defined in a
 * namespace for which the .clj is in the classpath.
 * 
 * Example: (source filter)
 */
sci.impl.namespaces.source = (function sci$impl$namespaces$source(_,___$1,n){
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","println","cljs.core/println",-331834442,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","or","cljs.core/or",1201033885,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("clojure.repl","source-fn","clojure.repl/source-fn",1877923323,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,n,null,(1),null))))),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","str","cljs.core/str",-1971828991,null),null,(1),null)),(new cljs.core.List(null,"Source not found",null,(1),null))))),null,(1),null))], 0)))),null,(1),null)))));
});

sci.impl.namespaces.clojure_repl_namespace = sci.lang.__GT_Namespace(new cljs.core.Symbol(null,"clojure.repl","clojure.repl",570897595,null),null);

sci.impl.namespaces.clojure_repl = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,"find-doc","find-doc",-1096800949,null),new cljs.core.Symbol(null,"dir","dir",-919681108,null),new cljs.core.Symbol(null,"dir-fn","dir-fn",187684626,null),new cljs.core.Symbol(null,"source-fn","source-fn",-1114937984,null),new cljs.core.Symbol(null,"source","source",1206599988,null),new cljs.core.Symbol(null,"doc","doc",-741138878,null),new cljs.core.Symbol(null,"print-doc","print-doc",528043232,null),new cljs.core.Symbol(null,"apropos","apropos",-1511857537,null),new cljs.core.Keyword(null,"obj","obj",981763962)],[sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(null,"find-doc","find-doc",-1096800949,null),sci.impl.namespaces.find_doc,sci.impl.namespaces.clojure_repl_namespace),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"dir","dir",-919681108,null),sci.impl.namespaces.dir,sci.impl.namespaces.clojure_repl_namespace,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"dir","dir",-919681108,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),null,new cljs.core.Keyword(null,"doc","doc",1913296891),null], null)),sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(null,"dir-fn","dir-fn",187684626,null),sci.impl.namespaces.dir_fn,sci.impl.namespaces.clojure_repl_namespace),sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(null,"source-fn","source-fn",-1114937984,null),sci.impl.namespaces.source_fn,sci.impl.namespaces.clojure_repl_namespace),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"source","source",1206599988,null),sci.impl.namespaces.source,sci.impl.namespaces.clojure_repl_namespace,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"source","source",1206599988,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),null,new cljs.core.Keyword(null,"doc","doc",1913296891),null], null)),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"doc","doc",-741138878,null),sci.impl.namespaces.doc,sci.impl.namespaces.clojure_repl_namespace,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"doc","doc",-741138878,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),null,new cljs.core.Keyword(null,"doc","doc",1913296891),null], null)),cljs.core.with_meta(sci.impl.namespaces.print_doc,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"private","private",-558947994),true], null)),sci.impl.copy_vars.new_var.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(null,"apropos","apropos",-1511857537,null),sci.impl.namespaces.apropos,sci.impl.namespaces.clojure_repl_namespace),sci.impl.namespaces.clojure_repl_namespace]);

sci.impl.namespaces.apply_template = (function sci$impl$namespaces$apply_template(argv,expr,values){
if(cljs.core.vector_QMARK_(argv)){
} else {
throw (new Error("Assert failed: (vector? argv)"));
}

if(cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,argv)){
} else {
throw (new Error("Assert failed: (every? symbol? argv)"));
}

return clojure.walk.postwalk_replace(cljs.core.zipmap(argv,values),expr);
});

sci.impl.namespaces.do_template = (function sci$impl$namespaces$do_template(var_args){
var args__5755__auto__ = [];
var len__5749__auto___46916 = arguments.length;
var i__5750__auto___46917 = (0);
while(true){
if((i__5750__auto___46917 < len__5749__auto___46916)){
args__5755__auto__.push((arguments[i__5750__auto___46917]));

var G__46918 = (i__5750__auto___46917 + (1));
i__5750__auto___46917 = G__46918;
continue;
} else {
}
break;
}

var argseq__5756__auto__ = ((((4) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((4)),(0),null)):null);
return sci.impl.namespaces.do_template.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5756__auto__);
});

(sci.impl.namespaces.do_template.cljs$core$IFn$_invoke$arity$variadic = (function (_,___$1,argv,expr,values){
var c = cljs.core.count(argv);
return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"do","do",1686842252,null),null,(1),null)),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (a){
return sci.impl.namespaces.apply_template(argv,expr,a);
}),cljs.core.partition.cljs$core$IFn$_invoke$arity$2(c,values)))));
}));

(sci.impl.namespaces.do_template.cljs$lang$maxFixedArity = (4));

/** @this {Function} */
(sci.impl.namespaces.do_template.cljs$lang$applyTo = (function (seq46330){
var G__46331 = cljs.core.first(seq46330);
var seq46330__$1 = cljs.core.next(seq46330);
var G__46332 = cljs.core.first(seq46330__$1);
var seq46330__$2 = cljs.core.next(seq46330__$1);
var G__46333 = cljs.core.first(seq46330__$2);
var seq46330__$3 = cljs.core.next(seq46330__$2);
var G__46334 = cljs.core.first(seq46330__$3);
var seq46330__$4 = cljs.core.next(seq46330__$3);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46331,G__46332,G__46333,G__46334,seq46330__$4);
}));


sci.impl.namespaces.clojure_template_namespace = sci.lang.__GT_Namespace(new cljs.core.Symbol(null,"clojure.template","clojure.template",-1162325089,null),null);

sci.impl.namespaces.clojure_template = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"obj","obj",981763962),sci.impl.namespaces.clojure_template_namespace,new cljs.core.Symbol(null,"apply-template","apply-template",1809601838,null),sci.impl.namespaces.apply_template,new cljs.core.Symbol(null,"do-template","do-template",-1578627476,null),sci.impl.copy_vars.macrofy_STAR_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Symbol(null,"do-template","do-template",-1578627476,null),sci.impl.namespaces.do_template,sci.impl.namespaces.clojure_template_namespace,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"do-template","do-template",-1578627476,null),new cljs.core.Keyword(null,"arglists","arglists",1661989754),null,new cljs.core.Keyword(null,"doc","doc",1913296891),null], null))], null);

sci.impl.namespaces.clojure_string_namespace = sci.lang.__GT_Namespace(new cljs.core.Symbol(null,"clojure.string","clojure.string",-1415552165,null),null);

sci.impl.namespaces.clojure_set_namespace = sci.lang.__GT_Namespace(new cljs.core.Symbol(null,"clojure.set","clojure.set",-630955632,null),null);

sci.impl.namespaces.clojure_walk_namespace = sci.lang.__GT_Namespace(new cljs.core.Symbol(null,"clojure.walk","clojure.walk",1625897340,null),null);

sci.impl.namespaces.clojure_edn_namespace = sci.lang.__GT_Namespace(new cljs.core.Symbol(null,"clojure.edn","clojure.edn",-302325352,null),null);

sci.impl.namespaces.macroexpand_all = (new sci.lang.Var((function (form){
var ctx = sci.ctx_store.get_ctx();
return clojure.walk.prewalk((function (x){
if(cljs.core.seq_QMARK_(x)){
return sci.impl.macroexpand.macroexpand(ctx,x);
} else {
return x;
}
}),form);
}),new cljs.core.Symbol(null,"macroexpand-all","macroexpand-all",966103926,null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"ns","ns",441598760),sci.impl.namespaces.clojure_walk_namespace,new cljs.core.Keyword(null,"name","name",1843675177),new cljs.core.Symbol(null,"macroexpand-all","macroexpand-all",966103926,null),new cljs.core.Keyword(null,"doc","doc",1913296891),"Recursively performs all possible macroexpansions in form."], null),false,null,null));

sci.impl.namespaces.clojure_walk_ns = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,"keywordize-keys","keywordize-keys",-1343651517,null),new cljs.core.Symbol(null,"postwalk","postwalk",967039904,null),new cljs.core.Symbol(null,"postwalk-replace","postwalk-replace",77744733,null),new cljs.core.Symbol(null,"walk","walk",1673453164,null),new cljs.core.Symbol(null,"prewalk","prewalk",1337993264,null),new cljs.core.Symbol(null,"prewalk-replace","prewalk-replace",2117002030,null),new cljs.core.Keyword(null,"obj","obj",981763962),new cljs.core.Symbol(null,"stringify-keys","stringify-keys",1735215919,null),new cljs.core.Symbol(null,"macroexpand-all","macroexpand-all",966103926,null)],[clojure.walk.keywordize_keys,clojure.walk.postwalk,clojure.walk.postwalk_replace,clojure.walk.walk,clojure.walk.prewalk,clojure.walk.prewalk_replace,sci.impl.namespaces.clojure_walk_namespace,clojure.walk.stringify_keys,sci.impl.namespaces.macroexpand_all]);
sci.impl.namespaces.namespaces = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,"clojure.string","clojure.string",-1415552165,null),new cljs.core.Symbol(null,"clojure.template","clojure.template",-1162325089,null),new cljs.core.Symbol(null,"sci.impl.protocols","sci.impl.protocols",-697012432,null),new cljs.core.Symbol(null,"clojure.core","clojure.core",-189332625,null),new cljs.core.Symbol(null,"clojure.set","clojure.set",-630955632,null),new cljs.core.Symbol(null,"sci.impl.deftype","sci.impl.deftype",959784924,null),new cljs.core.Symbol(null,"clojure.walk","clojure.walk",1625897340,null),new cljs.core.Symbol(null,"sci.impl.records","sci.impl.records",-393424368,null),new cljs.core.Symbol(null,"clojure.edn","clojure.edn",-302325352,null),new cljs.core.Symbol(null,"clojure.repl","clojure.repl",570897595,null)],[cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,"split","split",1041096409,null),new cljs.core.Symbol(null,"index-of","index-of",1275975485,null),new cljs.core.Symbol(null,"trimr","trimr",-1739157155,null),new cljs.core.Symbol(null,"upper-case","upper-case",1427515769,null),new cljs.core.Symbol(null,"lower-case","lower-case",1428172944,null),new cljs.core.Symbol(null,"reverse","reverse",752076261,null),new cljs.core.Symbol(null,"ends-with?","ends-with?",-346570208,null),new cljs.core.Symbol(null,"split-lines","split-lines",777513935,null),new cljs.core.Symbol(null,"last-index-of","last-index-of",215608200,null),new cljs.core.Symbol(null,"trim-newline","trim-newline",656815794,null),new cljs.core.Symbol(null,"blank?","blank?",1891979743,null),new cljs.core.Symbol(null,"replace","replace",853943757,null),new cljs.core.Symbol(null,"join","join",881669637,null),new cljs.core.Symbol(null,"trim","trim",-1880116002,null),new cljs.core.Symbol(null,"starts-with?","starts-with?",1014173927,null),new cljs.core.Symbol(null,"triml","triml",-286546306,null),new cljs.core.Symbol(null,"escape","escape",648929575,null),new cljs.core.Keyword(null,"obj","obj",981763962),new cljs.core.Symbol(null,"includes?","includes?",-2049283381,null),new cljs.core.Symbol(null,"capitalize","capitalize",-2143275164,null),new cljs.core.Symbol(null,"replace-first","replace-first",-943534331,null)],[clojure.string.split,clojure.string.index_of,clojure.string.trimr,clojure.string.upper_case,clojure.string.lower_case,clojure.string.reverse,clojure.string.ends_with_QMARK_,clojure.string.split_lines,clojure.string.last_index_of,clojure.string.trim_newline,clojure.string.blank_QMARK_,clojure.string.replace,clojure.string.join,clojure.string.trim,clojure.string.starts_with_QMARK_,clojure.string.triml,clojure.string.escape,sci.impl.namespaces.clojure_string_namespace,clojure.string.includes_QMARK_,clojure.string.capitalize,clojure.string.replace_first]),sci.impl.namespaces.clojure_template,sci.impl.namespaces.sci_impl_protocols,sci.impl.namespaces.clojure_core,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,"project","project",-1530041190,null),new cljs.core.Symbol(null,"map-invert","map-invert",1258886340,null),new cljs.core.Symbol(null,"select","select",-1506602266,null),new cljs.core.Symbol(null,"superset?","superset?",2074872204,null),new cljs.core.Symbol(null,"join","join",881669637,null),new cljs.core.Symbol(null,"union","union",-511498270,null),new cljs.core.Symbol(null,"rename","rename",-1146278156,null),new cljs.core.Symbol(null,"subset?","subset?",1551079215,null),new cljs.core.Symbol(null,"difference","difference",-738334373,null),new cljs.core.Keyword(null,"obj","obj",981763962),new cljs.core.Symbol(null,"intersection","intersection",-650544759,null),new cljs.core.Symbol(null,"index","index",108845612,null),new cljs.core.Symbol(null,"rename-keys","rename-keys",355340888,null)],[clojure.set.project,clojure.set.map_invert,clojure.set.select,clojure.set.superset_QMARK_,clojure.set.join,clojure.set.union,clojure.set.rename,clojure.set.subset_QMARK_,clojure.set.difference,sci.impl.namespaces.clojure_set_namespace,clojure.set.intersection,clojure.set.index,clojure.set.rename_keys]),sci.impl.namespaces.sci_impl_deftype,sci.impl.namespaces.clojure_walk_ns,sci.impl.namespaces.sci_impl_records,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"obj","obj",981763962),sci.impl.namespaces.clojure_edn_namespace,new cljs.core.Symbol(null,"read","read",-1514377108,null),cljs.reader.read,new cljs.core.Symbol(null,"read-string","read-string",-558384455,null),cljs.reader.read_string], null),sci.impl.namespaces.clojure_repl]);

//# sourceMappingURL=sci.impl.namespaces.js.map
